Linux實時將所有輸出重定向到文件


Linux的重定向機制十分好用,我們經常需要在服務器上掛起一個服務程序,然后將該程序的所有輸出重定向到某個文件,這樣即使我們注銷了用戶,程序依然在linux服務器上運行着。

但是重定向的輸出經常無法實時刷新到指定文件中,當我們調試程序時,這將給我們帶來巨大的困擾。其實只需要關閉重定向輸出的緩沖,即可實現實時刷新的效果。

命令如下:

nohup unbuffer command > file.out 2>&1 &

上面的unbuffer命令需要額外安裝expect-devel,用來實時刷新。

nohup命令用來忽略所有掛斷(SIGHUP)信號,讓你的程序即使在用戶注銷后依然繼續運行。

command是任何一段你想要執行的shell命令。

> file.out 代表將command運行結果重定向到當前目錄下的file.out文件中(如果要每次運行的結果追加到file.out后面,可以用>>而不是>)。

2 >&1表示將標准錯誤輸出cerr的所有輸出也都重定向到標准輸出cout中,這樣file.out中就會記錄command命令運行過程中所有標准輸出。

最后一個&表示后台運行該command。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM