2011-08-02 8 views
0

QNX procmgr_guardianには、親プロセスが終了したときに子プロセスを他の子プロセスのガーディアンとして設定する機能があります。 Linuxにもこのような機能はありますか? Linuxに実装するにはどうすればいいですか?任意のポインタが評価されます。親が死亡した場合の子プロセスのガーディアンプロセスを設定する

+0

あなたが過去に受け取った回答のいくつかを受け入れるために戻ってくると、回答が得られる可能性が高いです... – bdonlan

+0

申し訳ありませんが、私はそれを取得しませんでした。どういう意味 ? – Vin

+0

よろしいですか?申し訳ありません。今私はそれを得る! : – Vin

答えて

0

あなた自身の子ではないプロセスを監視するための直接的な方法はありません。しかし、あなたが使用できるハックがあります:pipe()を使用してFIFOを作成します。監視されるプロセスがパイプの書き込み終了を保持していることを確認します(そして、それは他のすべてのプロセスで閉じられています)。プロセスが終了すると、パイプの読み取り側にEOF条件が通知されます(つまり、selectは読み取り可能な状態を示します)。

親プロセスが直ちに終了したときにプロセスの親子化を行う場合は、PID namespacesでこれを実現できます。 'guardian'プロセスがPID名前空間にPID 1になるようにすることで、その名前空間内のすべての孤立したプロセスを継承します。

+1

これは、子プロセスではないプロセスを監視するためのものではありません。 "関数procmgr_guardian()は、デーモンプロセスが子プロセスを宣言し、 http://www.qnx.com/developers/docs/6.4.1/neutrino/lib_ref/p/procmgr_guardian.html。同様の機能がLinuxに存在するかどうか知りたいのですが、子プロセスの親を "init"以外の別のプロセスに変更することができます。 – Vin

関連する問題