在nohup
命令中實現日志輪轉,你可以使用logrotate
工具。logrotate
是一個用于管理日志文件的系統工具,它可以自動壓縮、刪除和輪轉日志文件。要使用logrotate
與nohup
一起實現日志輪轉,請按照以下步驟操作:
首先,確保你的系統上已經安裝了logrotate
。在大多數Linux發行版中,logrotate
已經預裝。如果沒有,你可以使用包管理器(如apt
、yum
或pacman
)來安裝它。
創建一個logrotate
配置文件,例如/etc/logrotate.d/myapp
。在這個文件中,添加以下內容:
/path/to/your/logfile.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/myapp.pid ]; then
kill -USR1 `cat /var/run/myapp.pid`
fi
endscript
}
這個配置文件的解釋如下:
/path/to/your/logfile.log
:替換為你的應用程序日志文件的路徑。daily
:每天輪轉日志文件。rotate 7
:保留7個輪轉后的日志文件。compress
:壓縮輪轉后的日志文件。missingok
:如果日志文件不存在,不會產生錯誤。notifempty
:如果日志文件為空,不進行輪轉。create 640 root adm
:創建新的日志文件,權限為640,屬主為root,屬組為adm。sharedscripts
:如果有多個日志文件匹配,只執行一次postrotate
腳本。postrotate
:輪轉后執行的腳本。這里我們向應用程序發送USR1
信號,通知它重新打開日志文件。你需要根據你的應用程序修改這部分內容。nohup
命令,并將輸出重定向到日志文件。例如:nohup /path/to/your/app --output /path/to/your/logfile.log &
現在,當你的應用程序運行時,logrotate
將自動輪轉日志文件。你可以通過運行logrotate -f /etc/logrotate.d/myapp
手動觸發日志輪轉。