我的系统上有一个已解散的进程:
abc 22093 19508 0 23:29 pts/4 00:00:00 grep ProcA abc 31756 1 0 Dec08 ? 00:00:00 [ProcA_my_collect]
如何在不重启机器的情况下终止上述过程?我试过了
kill -9 31756 sudo kill -9 31756
Bill Karwin.. 41
您已经终止了该进程,但是一个死进程不会从进程表中消失,直到其父进程执行一个名为"reaping"的任务(实质上是要求wait(3)
该进程读取其退出状态).尚未获得的死亡进程称为" 僵尸进程".
您在31756中看到的父进程ID是进程ID 1,它始终属于init
.该过程应定期收集其僵尸进程,但如果不能,则它们将在进程表中保留僵尸,直到您重新启动.
您已经终止了该进程,但是一个死进程不会从进程表中消失,直到其父进程执行一个名为"reaping"的任务(实质上是要求wait(3)
该进程读取其退出状态).尚未获得的死亡进程称为" 僵尸进程".
您在31756中看到的父进程ID是进程ID 1,它始终属于init
.该过程应定期收集其僵尸进程,但如果不能,则它们将在进程表中保留僵尸,直到您重新启动.
您是否检查过可能需要先杀死的子进程?有时堵塞就行了......试试吧ps -ef --forest
看看它下面的东西(如果有的话)然后先杀掉那个,然后你已经知道的那个
如果kill -9无法终止进程,则原因几乎总是驱动程序或操作系统错误.
init进程采用了这个过程,但它无法获得它.也就是说:当init调用wait(2)时,不返回该进程.init的主要目的之一是收获死亡的孤儿,所以问题不在于其父母在收获之前就死了.想一想:否则,谁会在注销后获得nohup'd进程的结果?
除非他们以某种方式与您所看到的特定错误相关,否则杀死已解散过程的孩子不太可能有所帮助.