問題:
プロセスがいつ終了するかを知る必要があります-それがPIDであることだけを知っています。ただし、関連するすべてのプロセスのソースを変更することもできるので、理論的には必要なことは何でもできます。すべての「効率的な」アイデアを歓迎します。
戦略 1:
select()
、pselect()
、poll()
、 、ppoll()
を調べepoll()
ました。私の理解では、ファイル記述子を取得するために、監視するプロセスごとにソケットを接続する必要があります。次に、ゼロのタイムアウト値を使用して、実行中のプロセスを実際にポーリングし、ソケットが生きているか死んでいるかを知るために、ソケットが読み取り可能かどうかを確認する必要があります。
戦略 2:
監視デーモンと他のプロセスの間に複数のパイプを作成する場合、パイプに書き込むことはできSIGPIPE
ますか?
結論:
現時点では、戦略 2 に賛成ですが、このアプローチに関連するアドバイスや落とし穴についてコミュニティに尋ねたいと思います。プロセスの終了についてのみ知りたいだけで、他には何も知りたくないという前提で、戦略 1 についての私の理解は正しいですか? また、戦略 2 に対する私のアプローチはあまりにも単純すぎて、私が気付いていないシステム リソースを消費するのでしょうか?