1. ホーム
  2. c

[解決済み】親プロセスが終了した後に子プロセスを終了させる方法は?

2022-04-05 13:29:20

質問

ちょうど1つの子プロセスを生成するプロセスがあるとします。親プロセスが何らかの理由(正常、異常、kill、^C、アサート失敗、その他)で終了するとき、子プロセスを死なせたいのです。これを正しく行うにはどうしたらよいでしょうか?


stackoverflowに似たような質問があります。


スタックオーバーフローで同様の質問が Windows :

解決方法は?

子どもはカーネルに配達を頼むことができる SIGHUP (または他のシグナル) を指定することで、親が死亡したときに PR_SET_PDEATHSIGprctl() のようなsyscallを使用します。

prctl(PR_SET_PDEATHSIG, SIGHUP);

参照 man 2 prctl を参照してください。

編集:これはLinux専用です