用父母1杀死已解散过程的脚本

时间:2014-06-18 12:48:29

标签: linux

我有一个进程是init的孩子(ppid = 1),在我的进程中发生了一些不好的事情 这个过程变成了僵尸 -

ps -ef | grep defunct
root     10384     1  0 Jun12 ?        00:48:22 [myProc] <defunct>

我尝试用kill -9杀死它,pkill和killall没有任何帮助。 我尝试将SIGCHLD发送到其父进程,这是init进程,但这也无济于事。

由于某种原因,初始化并没有收获这个过程(可能是I / O卡住了 - 我们的代码中的错误尚待发现)

似乎摆脱这种情况的唯一方法是重新启动服务器,但事实并非如此 一个可以接受的解决方案。

如何终止此过程,或阻止将来发生此过程。

可以控制我启动流程的方式,如果这可以防止它变得不存在。

这个过程显然需要我需要使用的资源,因此只是挂在那里没有帮助。

1 个答案:

答案 0 :(得分:1)

令人不快的答案是,你做不到。如果进程卡在系统调用中,则无法以任何方式获取(否则,init会执行此操作),至少不是通过软件。

如果I / O与可插拔硬件有关,则拔出该硬件可能会终止系统调用,因此该过程可以继续和/或终止。