我有一个被禁过程我的系统上:

abc      22093 19508  0 23:29 pts/4    00:00:00 grep ProcA
abc      31756     1  0 Dec08 ?        00:00:00 [ProcA_my_collect] <defunct>

如何杀死上述过程中,无须对机器的重启?我试图与

kill -9 31756
sudo kill -9 31756
有帮助吗?

解决方案

您已经杀死的过程中,但直到它的父进程执行一个被称为“收获”任务死亡的进程不会从进程表中消失(实质上调用wait(3)该进程读取它的退出状态)。没有被收获被称为死过程“僵尸处理。”

你看到31756父进程ID是进程ID 1,它总是属于init。这一过程应定期收割的僵尸进程,但如果不能,他们将继续僵尸进程表,直到你重新启动。

其他提示

你检查孩子的过程,可能需要先杀死?有时卡纸涨是跌的行... 尝试ps -ef --forest

,看看有什么可能低于它(如果有的话),然后杀了你已经知道

这是第一次,那么一个

如果杀-9未能杀死一个进程的原因几乎总是一个驱动程序或操作系统错误。

init进程已通过的过程中,但它不能收割。也就是说:当初始化调用wait(2)不返回过程。一个初始化的主要目的之一是收获死亡的孤儿,所以问题不在于它是收获前,其父去世。想想:?否则,谁注销后nohup'd过程的结果收获

查杀死进程的孩子是不太可能有帮助,除非它们以某种方式与您所看到的特定的错误。

您很可能不会是能够查杀,如果家长不解决它。无论什么原因,系统不收集该僵尸进程。

FWIW,我已经看到了相当多的,我用来管理在SCO OpenServer Boxen有。重型多用户的使用和低系统资源,但它似乎并没有伤害任何东西。只是让我生气。 :)

的方法,可能挂在例如忽略信号像SIGPIPE,检查与strace -p <pid>这里发生了什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top