nohup 後台執行

2021-10-06 07:35:55 字數 1355 閱讀 1307

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 標準輸...