什么是致命信号?

什么是致命信号?

Linux 编程接口说:

TASK_KILLABLE:此状态类似于 TASK_UNINTERRUPTIBLE ,但如果出现以下情况,则会唤醒进程:致命信号(即,会终止进程的一个)被接收。通过将内核代码的相关部分转换为使用此状态,可以避免挂起进程需要系统重新启动的各种情况。相反,可以通过向进程发送致命信号来终止该进程。第一段要转换为使用 TASK_KILLABLE 的内核代码是 NFS。

致命信号可以唤醒处于 TASK_KILLABLE 状态的进程,但不能唤醒处于 TASK_UNINTERRUPTIBLE 状态的进程。

致命信号是否仅意味着 SIGKILL,还是还意味着 SIGTERM、SIGHUP、SIGQUIT、SIGINT 或 ...?

答案1

默认情况下,大多数信号都是致命的。任何信号列出默认操作“终止”或“转储核心”是致命的,除非它被忽略或显式处理。这包括诸如、 当然SIGUSR1还有等“良性”信号。SIGKILLSIGTERM

这与 Linux 内核相匹配定义致命信号;对于致命信号:

因此,致命信号会导致进程被终止(不通过正在运行的程序指定的处理程序)。

相关内容