当类 Unix 系统正常关闭时,例如使用halt
、等或 GUI 等效项,它将首先尝试通过向所有进程发出 SIGTERM 信号来优雅地退出它们shutdown
。poweroff
一段时间后,它会向仍在运行的程序发送 SIGKILL。
这个延迟是多长时间?程序需要多少时间才能正常退出?如果系统之间有所不同,我想知道 Ubuntu 服务器的具体默认设置。
编辑:这是 Systemd 90 年代的延迟吗?
阅读吉尔斯的回答,
SIGHUP 在严厉程度方面与 SIGTERM 大致相同,但它具有特定的作用,因为当用户与终端断开连接时,它会自动发送到终端中运行的应用程序(从词源上讲,因为用户是通过电话线和调制解调器连接的)挂了)。SIGHUP 通常是非自愿的,与必须显式发送的 SIGTERM不同,因此应用程序应尝试在 SIGHUP 上保存其状态。
“必须显式发送的 SIGTERM”中的“显式”是否意味着 SIGTERM 必须最初由进程(而不是内核)通过进程调用发送kill()
?
我想知道 SIGKILL 是否必须显式发送到指定的进程?内核可以隐式向进程发送 SIGKILL 和 SIGTERM 中的任何一个吗?
当操作系统关闭时,内核是否会向正在运行的进程发送一些信号来终止它们?它是什么信号?内核是否隐式发送它?
谢谢。