SIGKILL无法运行的情况

有没有什么情况下,运行在linux上的应用程序,没有阻止信号SIGKILL,不会被解雇SIGKILL信号死亡?

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

如果信号在系统调用“内部”被阻塞的话,进程可能变得对这个信号无响应(等待I / O就是一个例子 – 例如,在一个失败的NFS文件系统上等待没有intr选项的硬盘上的I / O) 。

(另外一个例子是僵尸进程,但在这一点上它们并不是真正的进程。)

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

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

 D : uninterruptible sleep (usually IO) 

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