0

親プロセスが終了値を読み取っていないことを意味する機能停止状態になっているデッド プロセスがあります。(そして、それを読むつもりはありません)

親プロセスが読み取るために終了値がカーネルのどこかに保存されていることは知っていますが、私が親プロセスでない場合にその値を読み取る方法はありますか?

理想的には、シェルまたは abritrary C/python/your-favorite-language プログラムからこれを行うことができます。

[編集]: これは、子供を刈り取る方法や殺す方法の問題ではありません。プロセステーブルのスロットを使い果たしてもかまいません。その終了値が何であるかを知りたいだけです。つまり、カーネルで task_struct->exit_code を読み取りたいと考えています。

マチュー

4

2 に答える 2

1

あなたができるかもしれない一つのことはSIGCHLD、子供が死んだことを伝える親を送ることです。プログラムが何らかの品質である場合、それはプロセスを刈り取ります。

kill -s SIGCHLD parentpid
于 2012-07-05T14:58:47.240 に答える
0

waitpid()いいえ。呼び出し元のプロセスの子プロセスではないプロセスを呼び出そうとすると、 ECHILD. 親プロセスを強制終了する必要があります。これにより、子が に再親化されinit、その後、それが取得されます。

于 2012-07-05T14:56:53.073 に答える