有2个僵尸进程在我的服务器上运行,我无法用kill -9命令杀死它们。
$ ps aux | awk'{print $ 8“”$ 2}“| grep -w Z
输出:
Z 8511 Z 9002
有人可以build议我任何其他更好的方法来杀死他们。
谢谢,
桑迪普。
基本上 – 你不能。 这不一定是坏事:
http://www.linuxsa.org.au/tips/zombies.html
僵尸是死的过程。 你不能杀死人。 所有的进程最终都会死亡,当它们变成僵尸的时候。 他们几乎不消耗任何资源,这是可以预料的,因为他们已经死了! 僵尸的原因是僵尸的父母(进程)可以检索僵尸的退出状态和资源使用统计。 父母通过使用wait()系统调用之一向操作系统发出通知,不再需要僵尸。
当进程死亡时,其子进程全部成为进程号1的子进程,这是init进程。 Init始终是在等待孩子死亡,所以他们不会成为僵尸。
如果你有僵尸进程,这意味着这些僵尸还没有被父母等待(查看ps -l显示的PPID)。 你有三个选择:修复父进程(使其等待); 杀死父母; 或与之共存。 请记住,和它一起生活并不难,因为僵尸在ps的输出中只占用一个多余的一行。
如果您碰巧知道父级,则可以针对父级PID发出此命令:
kill -s SIGCHLD pid