nohup
命令本身不提供日志輪轉功能,但你可以將其輸出重定向到一個文件,并使用 logrotate
工具來實現日志輪轉。以下是如何配置和使用它們的步驟:
nohup
命令將程序的輸出重定向到一個文件。例如,如果你想運行名為 myapp
的程序并將輸出保存到名為 myapp.log
的文件中,可以使用以下命令:nohup ./myapp > myapp.log 2>&1 &
這會將標準輸出和標準錯誤都重定向到 myapp.log
文件,并在后臺運行程序。
logrotate
配置文件。在你的 /etc/logrotate.d/
目錄下創建一個新文件,例如 myapp
。在這個文件中,添加以下內容:/path/to/myapp.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
這個配置文件指定了以下選項:
daily
:每天輪轉日志。rotate 7
:保留7個輪轉后的日志文件。compress
:壓縮輪轉后的日志文件。missingok
:如果日志文件不存在,不要報錯。notifempty
:如果日志文件為空,不進行輪轉。create 640 root adm
:創建新的日志文件,權限為640,屬主為root,屬組為adm。logrotate
服務已啟用并運行。在大多數Linux發行版中,logrotate
服務默認是啟用的。你可以使用以下命令檢查其狀態:sudo systemctl status logrotate
如果服務未運行,可以使用以下命令啟動它:
sudo systemctl start logrotate
現在,你的程序的輸出將被記錄到 myapp.log
文件中,并且 logrotate
將每天自動輪轉日志文件。