2011-01-28 19 views

答えて

1

子供がゾンビである可能性があります。

子プロセスが終了すると、Z(ゾンビ)状態になります。この状態は、子プロセスの親プロセスがそれを取り出すまで子プロセスの終了状態を保持し、親プロセスが子プロセスの終了を通知されるまで子プロセスのPIDが再使用されないようにするために存在します。

子プロセスが、wait()/waitpid()システムコールファミリの1つを呼び出して終了したことを親プロセスに通知します。通常、これはSIGCHLD信号に応答して行われます。親がこれを実行すると、子PIDが解放され、ゾンビプロセスが消えます。

(親プロセスが終了した場合、未処理の子プロセスはすべてinitになり、終了時にwaitpid()が呼び出されます)。

0

親プロセスが子プロセスの終了ステータスを待っていますか? wait()から返された値にWIFSIGNALED()マクロとWTERMSIG()マクロを試してみましたか?子供がシグナルで終了したかどうか確認してください。

関連する問題