餵我與使用的rcS腳本啓動模擬器的工作,這是我的腳本執行多項任務
cd /tests
./test1 &
./test2 &
./test3 &
./test4
exit
我想要的是運行所有測試在同一時間,並且僅當所有先前的測試完成時才執行退出命令。不僅當測試4完成時,這是可能的嗎? 謝謝。沿
cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit
線
餵我與使用的rcS腳本啓動模擬器的工作,這是我的腳本執行多項任務
cd /tests
./test1 &
./test2 &
./test3 &
./test4
exit
我想要的是運行所有測試在同一時間,並且僅當所有先前的測試完成時才執行退出命令。不僅當測試4完成時,這是可能的嗎? 謝謝。沿
cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit
線
您可以使用等待:
./test1 &
./test2 &
./test3 &
./test4 &
wait
從bash的手冊頁:
等待[n ...] 等待e ach指定進程並返回其終止狀態 。每個n可以是一個 進程ID或工作規範;如果給出了作業規範 ,則等待作業管線的 中的所有進程。 如果沒有給出n,則 等待所有當前活動的子進程,並且 返回狀態爲零。如果n 指定了一個不存在的進程或 作業,則返回狀態爲127. 否則,返回狀態爲最後一個 進程或作業等待的 退出狀態。
注意,如果你試圖運行一個php腳本,配置php會阻止進程在後臺運行輸出任何東西。我發現很難讓Google知道如何打開默認行爲。我最終發現了這個問題:http://serverfault.com/q/564720/210994 – ThorSummoner 2015-01-15 21:39:14
東西(我假設的bash shell)
打我吧:) – 2009-01-09 23:58:20
xargs
可以支持並行
所以就像這樣:
seq 4|xargs -i -n 1 -P 4 ./test{}
哪個標誌是激活並行執行的標誌?並且所有的子處理都幾乎在同一時間開始? – ThorSummoner 2015-01-15 20:55:55
你可能要替換 「./exit」 只用 「退出」,退出shell腳本。如果您實際上在該目錄中運行一個名爲'exit'的可執行文件或腳本,我建議將其重命名爲不太令人混淆的內容。 – 2009-01-10 21:48:50