すでに実行中のプロセスを親プロセスから切り離すには?

すでに実行中のプロセスを親プロセスから切り離すには?

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を持っていることを確認できます。

関連情報