私は "親"のpythonスクリプトscript_1.py
、...、script_n.py
のコレクションを持っています。それぞれは、os.systemとnohupを使用して非同期的にさまざまな "子" Pythonスクリプトを起動します。各親スクリプトも、/tmp/task_1/kill.sh
にその子のPIDを保存し...、nohupスクリプトのバッチを連続して実行します
/tmp/task_n/kill.sh
は私が親のすべての非同期子供がI-1が完了していることを確認して、連続してすべてののn親スクリプトを実行したいです親を実行する前に実行i。 (2つの親のための)
私の試みはbashスクリプトを実行することでした:
#!/bin/bash
python script_1.py &
wait
python script_2.py &
しかし、これはps -ef | grep python
に応じscript_1.py
とscript_2.py
のすべての子を起動します。
FYI:各kill.shファイルの内容は、あなたが最初の待機が終了した後、まだ実行されているすべてのチャイルズを待ちたいフォーム
#!/bin/sh
kill 36713
kill 36715
etc..
pythonスクリプト*を連続して実行したい場合は、*それらをバックグラウンドにしないでください。 –
@JeffSchaller:私はフォアグラウンドプロセスとしてscript_1.pyとscript_2.pyを実行した場合でも、script_1の子供たちは 'Pythonのscript_2.py'が呼び出される時までに実行を終了しているという保証はありません。どのように私は私の希望の動作を確保できますか? – user11881
@JeffSchallerは私がscript_2を起動するタイミングを決定するためにscript_1によって生成されたPIDのリストを使用する必要がありますが、私はこれを行う方法がわからないんだと思われます。私はこれを熟考していますか? – user11881