8

有没有在 Linux 上运行的应用程序没有阻塞信号SIGKILL的情况下不会在触发SIGKILL信号时被杀死?

4

3 回答 3

12

SIGKILL不能被阻止或忽略(SIGSTOP也不能)。

intr如果进程在系统调用“内部”被阻塞(等待 I/O 就是一个例子 - 等待在没有选项的情况下硬挂载的失败 NFS 文件系统上的 I/O),则进程可能会对信号无响应。

(另一种情况是僵尸进程,但此时它们并不是真正的进程。)

于 2011-12-22T07:05:50.110 回答
6

是的,当进程在内核空间中被阻塞时,例如在阻塞的 NFS 文件系统上读取,或者在没有响应的设备上读取。

于 2011-12-22T07:05:04.583 回答
4

检查ps a(或者您也可以使用其他标志)进程状态。如果一个进程状态是

D : uninterruptible sleep (usually IO)

那么你不能杀死那个进程。
正如其他人所提到的,正如它所定义的,这通常是由卡住的 I/O 引起的,例如等待对断开连接的 NFS 文件系统执行 I/O 的进程。

于 2017-10-17T08:13:56.653 回答