1、nohup命令
nohup 命令 > ***.log &
,會將本應在螢幕上顯示的輸出,重定向到同級目錄的***.out中,即後台執行並把stdout輸出到檔案nohup.out中,可以使用 > 來重定向輸出。
2、例子:
3、應用環境
一般都是在linux下
4、nohup是否有匹配的&
nohup command_line
或者nohup command_line &
5、重定向輸出
使用nohup命令,這個看似很方便,但是當輸出很大的時候,***.txt檔案會非常大,或者多個後台命令的時候大家都會輸出到***.txt檔案,不利於查詢結果和除錯程式。所以能夠重定向輸出會非常方便。下面要介紹標準輸出,標準輸入 和標準錯誤了。
下面步入正題,重定向後台命令:$.
/command.sh > output 這其中就是標準輸出符號,其實是 1
>output 的縮寫
$./command.sh 2
> output 這裡的2
>就是將標準錯誤輸出到output檔案裡,而0
< 則是標準輸入了。
$nohup .
/command.sh > output 2
>&1
&【a】前面的nohup 和後面的&我想大家都能明白了把。
【b】中間的2
>
&1是把標準錯誤2重定向到標準輸出中1,繼而,將標準輸出匯入檔案output裡,所以,標準錯誤和標準輸出都匯入檔案output裡面了。
【c】為什麼需要將標準錯誤重定向到標準輸出,那就歸結為標準錯誤沒有緩衝區,而stdout有。命令 >output 2
>output 讓檔案output被兩次開啟,
而stdout和stderr將會競爭覆蓋,這肯定不是我門想要的.當這樣寫nohup .
/command.sh >output 2
>output,這種寫法是錯誤的
最後談一下/dev/null檔案的作用
$.
/command.sh >
/dev/null 2
>&1
&
這是乙個無底洞,任何東西都可以定向到這裡,但是卻無法開啟。所以,對於很大的stdou和stderr,當你不關心的時候,可以利用stdout和stderr定向到這裡/dev/null
參考1:
參考2:
nohup程式後台執行
linux常用命令,用於不結束通話的執行程式。nohup命令 如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶 關閉終端之後繼續執行相應的程序。nohup就是不掛起的意思 no hang up nohup command arg 如果...
後台執行命令 和nohup
當 我們在終端或控制台工作時,可能不希望由於執行乙個作業而佔住了螢幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對於密集訪問磁碟的程序,你可能 希望它能夠在每天的非負荷高峰時間段執行。為了使這些程序能夠在後台執行,也就是說不在終端螢幕上執行,有幾種選擇方法可供使用。設定crontab 檔案,並...
Linux後台執行專案 nohup
需要後台執行某些程式,即關閉shell視窗,執行不間斷.nohup no hang up,中文可以譯作不掛起.使用nohup可以在後台執行專案。nohup cmd arg 後台執行並記錄日誌 覆蓋 nohup ls run.log 2 1 2 1 是什麼?將標準錯誤 2 重定向到標準輸出 1 標準輸...