GNU/Linux >> Linux の 問題 >  >> Linux

親プロセスが終了したときの新しい親プロセス?

UNIXでは、親プロセスが消えると、すべての子プロセスがinitを親としてリセットすると思いました。これはいつも正しいわけではありませんか?例外はありますか?

承認された回答:

私のコメントを答えに移す…。例外はないと思います。

これは、「子が殺される前に親プロセスが殺されることがあります。この場合、「すべてのプロセスの親」であるinit プロセスは、新しいPPID(親プロセスID)になります。これらのプロセスは、孤立プロセスと呼ばれることもあります。」ソース

同様に、IBMのブログでも説明されています。「親は子の前に死ぬか殺されます。
上記のシナリオでは、子プロセスは孤立したプロセスになります(親を失ったため)。 Linuxでは、init プロセスは孤立したプロセスを救い出し、それらを採用します。これは、子が親を失った後、initを意味します プロセスが新しい親プロセスになります。」


Linux
  1. 新しいPodmanシークレットコマンドの探索

  2. プロセスが終了したときのデフォルトの終了コード?

  3. 子プロセスのPgidが親のPidではないのはなぜですか?

  1. Sigintが親プロセスに送信されたときに子プロセスに伝播されないのはなぜですか?

  2. Python で親プロセスの環境を変更することは可能ですか?

  3. セマフォをゼロにデクリメントしたプロセスがクラッシュした場合、セマフォを回復するにはどうすればよいですか?

  1. ゾンビプロセスを強制終了する方法

  2. 親プロセスが終了したときに、subprocess.check_output() で作成された python 子プロセスを強制終了する方法は?

  3. プロセスを kill -9 してはいけないのはいつですか?