是否有可能从壳得到僵尸进程退出状态?

如果我在shell中执行'ps'命令,我可以得到一些标记为“'的进程 – 它们退出了,但父进程没有收到退出状态。 有时,在debuggingnetworking应用程序时,我需要从shell中获取这个进程的退出状态 – 是0还是一些错误代码,如分段错误?

是否有可能从壳得到这个退出状态给予PID ,或者只有僵尸的父进程可以得到这个退出状态?

PS我不需要“杀”他们,“closures”他们等我只需要检查他们退出状态:)

僵尸进程的定义是一个完成执行的进程,但它仍然有退出状态报告给它的partent进程(显然已经不在那里了),因此,内核会把它保存到进程表中,不再计划进一步执行,但不能被移除,并且不允许PID被重新使用,直到退出状态被确定为不需要为止。

所以根据这个定义,如果你“接收”退出代码,你完全解决了僵尸进程。 您需要一个可以访问内核结构的内核模块。 通常只有父或者init可以从waitpid()中读取值,但是我记得用新的内核读取,有一种方法可以让进程的“控制器”代替init,也就是说他们会采用这样的孩子,所以如果你不不关心杀死父母……这也是一个可行的方法。

我去/ proc看看是否有东西从那里挖出来,但由于退出代码的性质,这不会在那里代表…