读取已解散过程的退出值

时间:2012-07-05 14:44:50

标签: linux zombie-process

我有一个死进程,现在处于不存在状态,这意味着它的父进程没有读取其退出值。 (它不会读它)

我知道退出值存储在内核中供父进程读取的地方但是,如果我不是父进程,有没有办法让我读取该值?

理想情况下,我可以通过shell或crit / C / python / your-favorite-language程序来完成此操作。

[编辑]:这不是关于如何收获孩子或杀死孩子的问题。我不在乎它是否用完了进程表中的一个插槽。我只是想知道它的退出值是什么。即,我想在内核中读取task_struct-> exit_code。

马修

2 个答案:

答案 0 :(得分:1)

您可以做的一件事是发送父SIGCHLD,告诉它孩子已经死亡。如果该程序具有任何质量,它将收获该过程。

kill -s SIGCHLD parentpid

答案 1 :(得分:0)

没有。尝试为waitpid()调用不属于调用进程子进程的进程将导致ECHILD。您将需要终止父进程,导致子进程重新迁移到init,然后将其收回。