[英]Running multiple Python scripts simultaneously and then sequentially
我可以從這樣的bash腳本同時運行多個Python腳本;
#!/bin/bash
python pr1.py &
python pr2.py &
python aop.py &
python loader.py &
但是如果我想要一個批次同時開火並且在它們運行之后,又開始更順序地開始。 這有用嗎?:
#!/bin/bash
python pr1.py &
python pr2.py &
python ap.py &
python loader.py
python cain.py
python able.py
一旦你把它放在最后,它就作為后台進程運行。 因此所有腳本以&結尾並行運行。
要按順序運行其他3個腳本,您可以嘗試兩個:
&&
僅在前面的腳本成功運行時才運行下一個腳本
python loader.py && python cain.py && python able.py
||
無論先前腳本的結果如何,都按順序運行腳本
python loader.py || python cain.py || python able.py
在bash腳本中,您只需添加wait
命令,如下所示:
#!/bin/bash
python pr1.py &
python pr2.py &
python ap.py &
wait
python loader.py
python cain.py
python able.py
顯然, wait
將等待所有工作(你解雇的后台進程)才能繼續。
使用&命令,您將在后台運行腳本。 您可以在循環中添加一個檢查以運行命令作業,並查看它是否繼續返回作業列表。 當它停止時,你可以繼續下一批python調用。
為什么不嘗試一下呢?
#1.py
import time
time.sleep(3)
print("First script")
#2.py
import time
time.sleep(3)
print("Second script")
如果將進程置於后台,您將同時看到兩個python腳本的輸出。
#!/bin/bash
python 1.py &
python 2.py &
如果在沒有&
情況下執行它,那么您將在6秒后看到第二個腳本的輸出。
#!/bin/bash
python 1.py
python 2.py
PS:在並行運行時要小心處理依賴項和並發訪問問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.