是否有任何情况下,在linux上运行的应用程序(未阻止信号SIGKILL)在发出SIGKILL信号时不会被杀死?
答案 0 :(得分:8)
SIGKILL
(SIGSTOP
也不能)。
如果信号在系统调用“内部”被阻塞,则进程可能对信号没有响应(等待I / O就是一个例子 - 在没有{{的情况下硬件安装的失败的NFS文件系统上等待I / O 1}}选项例如)。
(另一个案例是僵尸进程,但那时它们并不是真正的进程。)
答案 1 :(得分:3)
是的,当进程在内核空间中被阻止时,例如读取被阻止的NFS文件系统或无响应的设备。
答案 2 :(得分:1)
使用ps a
(或者您也可以使用其他标志)检查过程状态。
如果进程状态是
D : uninterruptible sleep (usually IO)
然后你不能杀死那个过程 正如其他人所提到的那样,这通常是由卡住I / O引起的,例如进程等待对断开连接的NFS文件系统进行I / O.