Nohup

nohup 不能與 && 一起正常工作

  • May 7, 2022

我想延遲後台執行,因為延遲我用於我使用sleep [anyseconds] && [execution]的後台nohup

nohup單獨的簡單例子:

nohup date &>> out.log &

當然,您可以在 in 的執行中找到列印date輸出out.log

但我想延遲執行,比如 15 秒,所以有點組合:

nohup sleep 15 && date &>> out.log &

這次它不能正常工作,sleep 15在.date``&&

有什麼問題nohup?它屈服於&&??

我假設您在 bash 中,nohup系統的命令(coreutils)在哪裡。

在 bash 中,&&標記命令行的結尾。在您的情況下,nohup僅從 shell 獲取參數sleep 15。剩下的就是 shell 的下一個命令。

由於nohup不是外殼,因此您不能使用括號將參數“擴展”為nohup,因為nohup無法解釋它並且不知道如何處理它。

一種解決方案是創建一個腳本(例如sleepdate),其中包含sleep 15 && date並將其用作參數nohup

nohup ./sleepdate &>> out.log &

或使用 bash (可以解釋&&)作為參數nohup

nohup bash -c 'sleep 15 && date' &>> out.log &

引用自:https://serverfault.com/questions/1100388