当我通过 systemctl 或 init 重新启动服务时会发生什么

当我通过 systemctl 或 init 重新启动服务时会发生什么

我试图了解重新启动期间进程的生命周期。

例如:

如果我们发出重启命令

  1. 它会杀死进程ID
  2. 删除或刷新描述符中所有打开的文件。
  3. 关闭 TCP 或 Unix 套接字
  4. 然后开始 - 所有实际命令将被触发。

有人可以帮助以更好的方式理解这一点吗?

答案1

将向服务器进程发送一个SIGTERM信号,期望该进程将退出。由进程本身来捕获信号并执行所需的任何操作以优雅地退出。即进程本身应该负责刷新文件、关闭它打开的网络连接等。

如果进程在超时限制内没有退出,则会通过信号强制终止它SIGKILL。超时的默认值为 90 秒。

相关内容