親プロセスが終了した場合、ゾンビプロセスはどのように処理されますか?

親プロセスが終了した場合、ゾンビプロセスはどのように処理されますか?

親プロセスが終了したゾンビプロセスを削除するために Unix システムが使用する手法はどれですか?

答え1

プロセスの親プロセスが終了すると、init (プロセス 1) がそのプロセスを引き継ぎます。その後、引き継いだプロセスのうちゾンビになったりゾンビになったりするものを引き継ぎます。

リーピングは通常、親によって行われます。親は子がいつ終了するかを知る必要があるためです。また、親が間違ったプロセスにシグナルを送信しないように、親が知るまで子の PID の再利用を停止する必要があります (正しい PID にシグナルを送信しますが、その PID は新しいプロセスに属します)。リーピング プロセスでは、親は子のことを忘れる必要があります。

答え2

プロセスが終了し、そのプロセスにゾンビ状態の子プロセスがある場合、すべてのゾンビ子プロセスの親プロセス ID は 1 (init プロセス) に設定され、子プロセスを継承してクリーンアップします (つまり、init はそれらを待機し、ゾンビを削除します)。

関連情報