ssh を使用してリモートでさまざまなサーバーにさまざまなジョブを送信するアクション キューがあります。例えば
ssh s1 job1.py
ssh s2 job2.py
問題はjob1.py
、job2.py
完了するまでに長い時間がかかる可能性があり、アクション キューをブロックしたくないことです。どういうわけか自分の仕事を親にすることができるのだろうか。
私の現在の解決策は次のとおりjob1.py
ですsubprocess.Popen(['my_actual_job.py'])
。これを使用すると、ssh はブロックされませんが、my_actual_job.py
完了しません。タスクが完了するずっと前に、どういうわけか終了します。ssh s1 "job1.py 2>1"
すると、my_actual_job.py
終了しますが、アクションキューがブロックされます。
my_actual_job.py
ssh は終了できるが、ジョブはバックグラウンドでタスクを終了できるように、どうにかして子プロセス ( ) の親を変更する方法を知っている人はいますか?
PEP 3143: Standard daemon process libraryを見ましたが、それを行うためのより良い、よりクリーンな方法はありますか?
ssh コマンドを変更できません... どうにかして job1.py で変更する必要があります。Double Forkingを実行しましたが、まだ機能しません...