Linux 编程接口说:
TASK_KILLABLE:此状态类似于 TASK_UNINTERRUPTIBLE ,但如果收到致命信号(即会杀死进程的信号),则会唤醒进程。通过将内核代码的相关部分转换为使用此状态,可以避免挂起进程需要系统重新启动的各种情况。相反,可以通过向其发送致命信号来终止该进程。要转换为使用 TASK_KILLABLE 的第一段内核代码是 NFS。
致命信号可以唤醒 TASK_KILLABLE 中的进程,但不能唤醒 TASK_UNINTERRUPTIBLE 中的进程。
致命信号是否仅意味着 SIGKILL,或 SIGTERM、SIGHUP、SIGQUIT、SIGINT 或 ...?
Ste*_*itt 10
默认情况下,大多数信号都是致命的。任何以“终止”或“转储核心”的默认操作列出的信号都是致命的,除非它被忽略或明确处理。这包括“良性”信号SIGUSR1,SIGKILL当然,以及SIGTERM等等。
这符合 Linux 内核对致命信号的定义;对于致命的信号:
SIGCONT, SIGCHLD, SIGWINCH,SIGURG一方面, and SIGSTOP, SIGTSTP, SIGTTIN, 和SIGTTOU另一方面;因此,致命信号会导致进程被终止(不通过正在运行的程序指定的处理程序)。