在我的服务器中运行了2个僵尸进程,我无法用kill -9命令杀死它们.
$ ps aux | awk '{ print $8 " " $2 }' | grep -w Z
输出:
Z 8511 Z 9002
有人可以建议我任何其他更好的方法来杀死他们.
谢谢,
桑迪普.
基本上 - 你不能.这不一定是坏事:
http://www.linuxsa.org.au/tips/zombies.html
僵尸是死的过程.你无法杀死死者.所有过程最终都会消亡,当他们这样做时,他们就变成了僵尸.他们几乎没有消耗任何资源,这是可以预期的,因为他们已经死了!僵尸的原因是僵尸的父(进程)可以检索僵尸的退出状态和资源使用情况统计信息.父母通过使用wait()系统调用之一向操作系统发出不再需要僵尸的信号.
当进程终止时,其子进程全部成为进程号1的子进程,这是init进程.初始是"永远"等待孩子们死去,这样他们就不会像僵尸一样.
如果你有僵尸进程,这意味着他们的父母没有等待那些僵尸(看看ps -l显示的PPID).您有三种选择:修复父进程(让它等待); 杀死父母; 或者和它一起生活.请记住,与它一起生活并不是那么难,因为僵尸在ps的输出中只占用了一条额外的线.
如果您碰巧知道父节点,则可以针对父PID发出此命令:
kill -s SIGCHLD pid
| 归档时间: |
|
| 查看次数: |
2986 次 |
| 最近记录: |