[英]invoking a bash script by itself
我需要使用一組不同的 arguments 單獨調用 bash 腳本,使其作為后台進程運行,所以我使用的是類似的東西:
if [[ $a == $b ]]
then
$0 -v &> /dev/null
fi
問題是,雖然我使用'&'作為后綴調用與后台進程相同的腳本並將所有輸出重定向到/dev/null,但我調用腳本的終端沒有釋放,我假設這是因為最初被調用的腳本有一個作為前台進程運行的進程,所以查詢是,如何自己調用 bash 腳本,這樣當它調用自己時,負責第一次運行腳本的進程被殺死並且控制台發布並且對自身的第二次調用作為后台進程運行?
您沒有使用&
將其作為后台進程運行。 &>
是一個完全獨立的標記,它同時重定向 stdout 和 stderr。 如果您想將該命令放在后台,它將是$0 -v &>/dev/null &
。
嘗試這樣的事情:
nohup $0 -v &
nohup 命令執行分離后台作業並忽略信號的工作,請參見手冊頁。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.