Boot
rc.local,順序呼叫命令(一個在完成另一個之後)
我期待在
rc.local
,如果說我在一行中呼叫程序P1
然後P2
在下一行中,P2
只會在之後執行P1
(成功執行取決於它)。這是 bash 腳本中的行為。但是,啟動我的機器後,P2
並沒有完成。所以我的猜測是所有寫入的命令rc.local
都是並行執行的,並且P1
在P2
. 我想這種行為對守護程序是有意義的……如果它是並行的,我可以通過使用
&&
運算符或創建包裝腳本來解決這個問題。不過,我想確認這種行為:在
rc.local
,新行中的命令是順序執行還是並行執行?
來自
rc.local
的行不並行執行。它將像任何其他 bash 腳本一樣以相同的順序執行。不要猜測為什麼
P2
沒有執行,通過記錄它的輸出來確定。例如:P1 > /tmp/P1.startup 2>&1 P2 > /tmp/P2.startup 2>&1
如果
P1
必須在執行之前成功完成,P2
那麼您需要設置一個 if true 語句。其中之一將起作用:P1 && \ P2
或者
P1 test $? -eq 0 && P2
或者
P1 if [[ $? == 0 ]] then P2 fi