在Linux中杀死Zombie和D状态进程的最佳方法


Answers:


19

双击。

实际上,重新启动。没有真正的方法可以轻松地摆脱僵尸,但实际上没有理由要使僵尸不占用计算机上的资源。它是进程表中的一个孤立条目。应该初始化来收集它,但是该过程出了点问题。http://en.wikipedia.org/wiki/Zombie_process

也许您是在问,因为存在更严重的问题……您是否在漫游过程表时遇到了一大堆僵尸?这通常意味着程序中的错误或配置问题。您不应在系统上拥有大量僵尸。一两个我不用担心。如果您有50个来自Apache或其他守护程序的文件,则可能有问题。但这与您的问题没有直接关系...


1
大约有10个僵尸进程
vnix27 2011年

流程是什么?
巴特·西尔弗斯特姆

15
/sbin/reboot

您无法杀死僵尸-它已经死了

如果ppid仍然存在,则终止该操作通常可以清理生成的僵尸。

您不应该在不间断的睡眠中杀死进程-通常这意味着它们是受I / O约束的,但是IIRC它也可能发生在从例如网络套接字的阻止读取中。


10

基础文件系统或磁盘中的错误可能会导致I / O绑定进程。在这种情况下,请尝试“ umount -f”它们所依赖的文件系统-这将中止所有打开的未完成I / O请求。


2
并丢失数据。听起来不是一个好主意。
迈克尔·汉普顿

5
无论如何,您都会通过重新引导丢失数据。这样,您可以避免重新启动-生产或开发系统上的有用功能。
Arie Skliarouk 2014年

2
谢谢,这解决了我们遇到的问题,脚本停留了数周试图访问一个消失的NFS挂载:)
BT643 2014年

1
有时候,当我ls在s3fs挂载上执行命令时,这正是发生在我身上的事情。直到我用强制卸载后,该ls过程才能kill -9终止umount -l。替代方案?
Marco Marsala

2
现在,我的卸载过程已作为僵尸STAT“ D +”挂起!
柯蒂斯·雅洛普
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.