当操作系统关闭时,进程将使用
SIGTERM和SIGKILL关闭,但这些信号并不来自内核(或者不是直接调用pid为0或负pid的kill()将导致内核向多个进程发送信号)。它们来自终止其服务的服务管理器,以及各种作为系统管理机制一部分的所有应用程序模式程序:例如killprocs范斯莫伦堡rc脚本、killprocsOpenRC脚本和systemd-shutdown程序。
当操作系统关闭时,
谢谢。
发布于 2018-12-18 05:49:14
服务管理器知道它应该终止其服务,因为系统管理员要求它停止或重新启动系统。当管理员运行reboot,或者用户在他/她的桌面环境中选择相应的选项时,init进程被告知重新启动(此时不是内核)。在请求内核实际重新启动之前,init进程将处理配置好的所有操作。
最后一条沟,杀死-一切阶段是关闭过程的一部分:一旦关闭过程要求所有正在运行的服务停止,它通常等待一段时间,然后杀死任何剩余的进程。
不同的init系统都有不同的实现。使用sysvinit,停止或重新启动是一个运行级的转换,首先要求运行的init切换到适当的运行级别(详细信息请参见这个telinit命令页 )。使用systemd,它是一个目标,最终运行这个systemd-halt服务。
https://unix.stackexchange.com/questions/489610
复制相似问题