UNIXでは、親プロセスが消えると、すべての子プロセスがinitを親としてリセットすると思いました。これはいつも正しいわけではありませんか?例外はありますか?
承認された回答:
私のコメントを答えに移す…。例外はないと思います。
これは、「子が殺される前に親プロセスが殺されることがあります。この場合、「すべてのプロセスの親」であるinit
プロセスは、新しいPPID(親プロセスID)になります。これらのプロセスは、孤立プロセスと呼ばれることもあります。」ソース
同様に、IBMのブログでも説明されています。「親は子の前に死ぬか殺されます。
上記のシナリオでは、子プロセスは孤立したプロセスになります(親を失ったため)。 Linuxでは、init
プロセスは孤立したプロセスを救い出し、それらを採用します。これは、子が親を失った後、init
を意味します プロセスが新しい親プロセスになります。」