web-dev-qa-db-ja.com

fork()で作成された子プロセスは、親が強制終了されたときに自動的に強制終了されますか?

C/C++でfork()を使用して子プロセスを作成しています。
親プロセスが終了したとき(または何らかの理由で強制終了されたとき)、すべての子プロセスも強制終了させたいです。
それはシステムによって自動的に行われますか?それとも自分でやらなければならないのですか?

ありがとう。


既存の同様の質問:

39
GetFree

いいえ。親が強制終了されると、子はinitプロセスの子になります(プロセスIDが1で、カーネルによって最初のユーザープロセスとして起動されます)。

Initプロセスは新しい子を定期的にチェックし、それらを待ちます(したがって、戻り値によって割り当てられたリソースを解放します)。

質問はすでにここで質の高い回答で議論されました: 親が終了した後に子プロセスを死にさせる方法?