簡體   English   中英

同時運行多個Python腳本然后按順序運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM