【发布时间】:2011-12-22 07:02:55
【问题描述】:
在 Linux 上运行的应用程序在没有阻止信号 SIGKILL 时是否会在触发 SIGKILL 信号时不会被杀死?
【问题讨论】:
-
在 Unix SE 上:unix.stackexchange.com/questions/5642/…
在 Linux 上运行的应用程序在没有阻止信号 SIGKILL 时是否会在触发 SIGKILL 信号时不会被杀死?
【问题讨论】:
SIGKILL 不能被阻止或忽略(SIGSTOP 也不能)。
如果进程在系统调用“内部”被阻塞(等待 I/O 就是一个例子 - 在没有 @987654324 的情况下硬挂载的失败 NFS 文件系统上等待 I/O以@选项为例)。
(另一种情况是僵尸进程,但此时它们并不是真正的进程。)
【讨论】:
是的,当进程在内核空间中被阻塞时,例如在被阻止的 NFS 文件系统或没有响应的设备上读取。
【讨论】:
检查ps a(或者您也可以使用其他标志)进程状态。
如果一个进程状态是
D : uninterruptible sleep (usually IO)
那么你不能杀死那个进程。
正如其他人所提到的,正如它所定义的,这通常是由 I/O 卡住引起的,例如等待对断开连接的 NFS 文件系统执行 I/O 的进程。
【讨论】: