linux nohup命令詳解

來源:互聯網
上載者:User

linux nohup命令詳解 nohup命令及其輸出檔案      nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。nohup就是不掛起的意思( n ohang up)。 一般都是在linux下nohup格式:   www.2cto.com  nohup command 或者 nohup command & 這之間的差別是帶&的命令列,即使terminal(終端)關閉,或者電腦死機程式依然運行(前提是你把程式遞交到伺服器上); 它把標準輸出(STDOUT)和標準錯誤(STDERR)結果輸出到nohup.txt檔案這個看似很方便,但是當輸出很大的時候,nohup.txt檔案會非常大,或者多個後台命令的時候大家都會輸出到nohup.txt檔案,不利於尋找結果和偵錯工具。 所以能夠重新導向輸出會非常方便。下面要介紹標準輸出,標準輸入 和標準錯誤了。 其實我們一直都在用,只是沒有注意到,   www.2cto.com  比如 >./command.sh > output #這其中的>就是標準輸出符號,其實是 1>output 的縮寫 >./command.sh 2> output #這裡的2>就是將標準錯誤輸出到output檔案裡。 而0< 則是標準輸入了。 下面步入正題,重新導向後台命令 >nohup ./command.sh > output 2>&1 & 解釋:前面的nohup 和後面的&我想大家都能明白了把。 
 主要是中間的 2>&1的意思 這個意思是把標準錯誤(2)重新導向到標準輸出中(1),而標準輸出又匯入檔案output裡面,   www.2cto.com  所以結果是標準錯誤和標準輸出都匯入檔案output裡面了。 至於為什麼需要將標準錯誤重新導向到標準輸出的原因,那就歸結為標準錯誤沒有緩衝區,而stdout有。 這就會導致 >output 2>output 檔案output被兩次開啟,而stdout和stderr將會競爭覆蓋,這肯定不是我門想要的. 
 這就是為什麼有人會寫成: nohup ./command.sh >output 2>output出錯的原因了 ########################## 最後談一下/dev/null檔案的作用 這是一個無底洞,任何東西都可以定向到這裡,但是卻無法開啟。 所以一般很大的stdou和stderr當你不關心的時候可以利用stdout和stderr定向到這裡>./command.sh >/dev/null 2>&1  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.