【问题标题】:Unable to kill zombie process with kill -9 [duplicate]无法用kill -9杀死僵尸进程[重复]
【发布时间】:2013-06-25 19:20:35
【问题描述】:

我的服务器中有 2 个僵尸进程正在运行,我无法使用 kill -9 命令杀死它们。

$ ps 辅助 | awk '{ 打印 $8 " " $2 }' | grep -w Z

输出:

Z 8511 Z 9002

谁能给我建议其他更好的方法来杀死他们。

谢谢,

桑迪普。

【问题讨论】:

  • 阅读更多关于zombie processes的信息。你不需要也不能杀死他们,因为他们是僵尸。你应该确保有人为他们waitpid。

标签: linux ubuntu


【解决方案1】:

基本上 - 你不能。这不一定是坏事:

http://www.linuxsa.org.au/tips/zombies.html

僵尸是死进程。你不能杀死死者。所有进程 最终死去,当他们死去时,他们变成了僵尸。他们消费 几乎没有资源,这是可以预料的,因为他们已经死了! 僵尸的原因是僵尸的父(进程)可以 检索僵尸的退出状态和资源使用统计信息。这 parent 向操作系统发出它不再需要僵尸的信号 通过使用其中一个 wait() 系统调用。

当一个进程死亡时,它的子进程都成为 进程号 1,即 init 进程。初始化是“总是” 等待孩子们死去,这样他们就不会像僵尸一样。

如果你有僵尸进程,这意味着那些僵尸进程还没有 由他们的父母等待(查看 ps -l 显示的 PPID)。你 有三个选择: 修复父进程(让它等待);杀死 父母;或与之共处。请记住,与它一起生活并不难 因为僵尸在输出中只多占用一行 ps.

如果您碰巧知道父级,则可以针对父级 PID 发出此命令:

kill -s SIGCHLD pid

【讨论】:

    猜你喜欢
    • 2013-06-01
    • 2023-03-08
    • 2011-09-14
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多