什么是致命信号?

Tim*_*Tim 3 linux signals

Linux 编程接口说:

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

致命信号可以唤醒 TASK_KILLABLE 中的进程,但不能唤醒 TASK_UNINTERRUPTIBLE 中的进程。

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

Ste*_*itt 10

默认情况下,大多数信号都是致命的。任何以“终止”或“转储核心”的默认操作列出的信号都是致命的,除非它被忽略或明确处理。这包括“良性”信号SIGUSR1SIGKILL当然,以及SIGTERM等等。

这符合 Linux 内核对致命信号的定义;对于致命的信号:

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