我正在編寫一個bash腳本,該腳本本質上是一個需要大約10個小時才能完成的python腳本,後面跟着一個R腳本,用於檢查python腳本的輸出以獲取所需的任何內容關心。以下是我有:正確使用帶有未知進程的Bash等待命令編號
ProdRun="python scripts/run_prod.py"
echo "Commencing Production Run"
$ProdRun #Runs python script
wait
DupCompare="R CMD BATCH --no-save ../dupCompareTD.R" #Runs R script
$DupCompare
現在我的問題是,往往是Python腳本可以根據其輸入,有很多不同的PID的產生我們的Linux服務器上的不同過程的整個堆,我們有工人堆使用相同的服務器啓動腳本。據我所知,「等待」命令必須等待所有進程完成或完成特定的PID,但是當我無法分辨將分配的PID或進程將運行多少個PID時,我該如何確切用它?
編輯:謝謝你所有的幫助,這是什麼導致我的困境,任何人搜索這個谷歌。我將ProdRun python腳本分解爲它自己調用的單獨腳本,但仍然存在問題,我認爲其中一個腳本也調用了另一個較小的腳本,其末尾有一個「&」忽略在python腳本本身內部等待的任何命令。簡單地刪除它並插入一行「os.system()」,允許所有代碼順序運行。
您只能等待子進程。你不能等待孫子的過程。 –
不要使用變量來存儲命令;使用功能。 – chepner