シェルスクリプトがあります:
#!/bin/bash
python3 do_something_1.py
python3 do_something_2.py
python3 do_something_3.py
python3 do_something_4.py
python3 do_something_5.py
今走っているならpython3 do_something_3.py
。
bashプロセスがpython3 do_something_3.py
終了した後に後続のコマンドを実行しないようにするにはどうすればよいですか(サブプロセスを終了しないでください)python3 do_something_4.py
。python3 do_something_5.py
ベストアンサー1
while
ループを使用して、do_something_3.py
まだ実行されているかどうか(例:使用pgrep
)を確認できますsleep
。
ループが終わったらスクリプトを終了します。
while pgrep -f do_something_3.py >/dev/null ; then
sleep 0.1
done && pkill -9 myscript
- 正確な
pkill
コマンドは、スクリプトに名前を付けて呼び出す方法によって異なり、pgrep myscript
PIDを使用してテストまたは検索できますkill -9 PID
。 do_something_4.py
スクリプトの開始前に停止する正確な時間が見つからないため、これは理想的ではありません。