3つのプロセスがあります。
- CPと呼ばれる「制御プログラム」です。
- CPはMPと呼ばれる管理プロセスを開始します。
- MPはWPと呼ばれるワーカープロセスを開始します。
CPは私が修正できる唯一のプログラムです。 MPとWPとのすべての相互作用はstdinとstdoutを介して行われ、MPとWPのPIDが指定されたオペレーティングシステムの操作によって行われます。
WPはしばらく実行した後、次のステップに進む準備ができていることを知らせます。
CPはWPを制御し、MPから分離したいと思います。 CP は WP の stdin、stdout、および stderr に直接アクセスします。 MP は終了し、WP は CP の管理下で稼働し続けます。
LinuxでPythonを使用してこれを行うにはどうすればよいですか?
答え1
/proc
たとえば、WPでファイル記述子を開くことができます/proc/123/fd/0
。この時点で、MPとCPはどちらもWPのstdin / stdout / stderrのハンドルを開きます。 MPを殺して、CPだけがMPを持っていることを確認できます。