& 後台執行
結合兩者
nohup
命令:如果你正在執行乙個程序,而且你需要在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。
該命令可以在你退出帳戶/關閉終端之後繼續執行相應的程序。
nohup 是no hang up的縮寫,就是不結束通話的意思。
nohup 命令執行由 command引數和任何相關的 arg引數指定的命令,忽略所有結束通話(sighup)訊號。
nohup command [ arg … ]
注意:
nohup 並不支援 bash 內建的指令,因此你的指令必項要是外部指令才行。
無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 檔案中。
如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 [~/nohup.out] 檔案中。
如果沒有檔案能建立或開啟以用於追加,那麼 command 引數指定的命令不可呼叫
&
表示此命令會在終端後台工作,ssh視窗不被鎖定,但是關閉視窗時,程式或者命令也還是會退出;
反之,如果沒有&
,則表示此命令會在終端前台工作(當前ssh視窗被鎖定,可按ctrl + c打斷程式執行,或直接關閉視窗,程式退出)。
擴充套件:在shell指令碼中,如果裡面還呼叫多個別的指令碼,對於不想等待某乙個指令碼執行結束才執行下面的指令碼內容的情況,可以在執行該指令碼的命令後加上 &,讓其在後台執行。
只使用&
,當使用者退出(掛起)的時候,命令自動也跟著退出了。
那麼,我們可以巧妙的把他們結合起來用:
nohup command [ arg … ]
&
這樣就能使命令永久的在後台執行(除了自動執行結束退出等)
例子:
nohup command [ arg … ]
> myout.file 2>
&1 &
在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
2>&1是將標準錯誤(2)重定向到標準輸出(&1),標準輸出(&1)再被重定向輸入到myout.file檔案中。
Linux下程式後台執行 nohup和
一 執行python程式命令後面加 比如 python test.py log.txt 其中 log.txt 是可選項,用於將test.py程式輸出結果定向輸出到log.txt檔案中 注意 這種方式當斷開ssh連線後程式會終止執行。二 nohup指令執行python程式 不結束通話執行任務,no h...
Linux 下nohup 和 有什麼聯絡呢?
背景 一直沒搞清楚 nohup 與 的區別,看著公司裡遺留的shell,也就稀里糊塗地用著 這是很糟糕的態度 結論放前面 使程序在後台執行,預設輸出到標準輸出 即當前螢幕 除非重定向輸出.此時忽略 sigint 訊號.若關閉會話,則程序會結束 nohup 程序仍舊在前台跑,預設輸出到 nohup.o...
linux下後台執行程式 nohup
在linux中,如果要讓程序在後台執行,一般情況下,我們在命令後面加上 即可,實際上,這樣是將命令放入到乙個作業佇列中了 test.sh 1 17208 jobs l 1 17208 running test.sh 對於已經在前台執行的命令,也可以重新放到後台執行,首先按ctrl z暫停已經執行的程...