nohup
(no hang-up)命令用于在后臺運行程序,即使關閉終端或斷開連接,程序也會繼續運行。將nohup
命令的輸出重定向到文件是一種常見的做法,以便在程序運行過程中記錄輸出信息或錯誤信息。
以下是一些使用nohup
命令輸出重定向到文件的技巧:
將標準輸出和標準錯誤輸出重定向到同一個文件:
nohup your_command > output.log 2>&1 &
這里,your_command
是你要運行的命令,output.log
是輸出文件的名稱。2>&1
表示將標準錯誤輸出(文件描述符2)重定向到標準輸出(文件描述符1),&
表示將命令放入后臺運行。
將標準輸出和標準錯誤輸出分別重定向到不同的文件:
nohup your_command > output.log 2> error.log &
這里,output.log
是標準輸出文件的名稱,error.log
是標準錯誤輸出文件的名稱。
如果你想在程序運行過程中實時查看輸出文件的內容,可以使用tail
命令:
tail -f output.log
這里,-f
選項表示實時查看文件內容。
如果你想限制輸出文件的大小,可以使用logrotate
工具。首先創建一個logrotate
配置文件,例如/etc/logrotate.d/your_command
,并添加以下內容:
/path/to/output.log {
size 10M
rotate 5
compress
missingok
notifempty
create 0640 user group
}
這里,size 10M
表示當日志文件大小達到10MB時進行輪轉,rotate 5
表示保留5個輪轉文件,compress
表示壓縮輪轉文件,missingok
表示如果日志文件不存在,不報錯,notifempty
表示如果日志文件為空,不進行輪轉,create 0640 user group
表示創建新的日志文件,權限為0640,屬主為用戶,屬組為組。
如果你想在程序運行過程中監控輸出文件的行數,可以使用wc -l
命令:
wc -l output.log
這里,-l
選項表示統計行數。
通過這些技巧,你可以更好地管理和監控使用nohup
命令運行的程序的輸出。