Ubuntu

每小時記錄一次這將重新啟動我的程序

  • January 28, 2019

我正在考慮將日誌輪換設置切換為每小時而不是每天輪換日誌。我想我已經準備好配置,但想檢查配置是否會使用 postrotate 選項觸發程序的重新載入/重新啟動?

我在 ubuntu 16.04 上執行它,並將我的配置從 /etc/cron.daily 複製到 /etc/cron.hourly 準備好了

這是我在 logrotate.d/nginx 文件中的配置:

/var/log/nginx/*/*.log {
   hourly
   missingok
   rotate 720
   compress
   delaycompress
   notifempty
   create 640 nginx adm
   sharedscripts
   postrotate
           if [ -f /var/run/nginx.pid ]; then
                   kill -USR1 `cat /var/run/nginx.pid`
           fi
   endscript
}

如果這確實殺死了這個過程,有沒有辦法繞過這個步驟?

可以看到的命令:

kill -USR1 `cat /var/run/nginx.pid`

實際上並沒有殺死程序。

相反,kill發送一個特定的信號“ USR1,這對於 nginx 具有特定的含義,並告訴 nginx 主程序重新打開它的日誌文件。

這實際上意味著 nginx 開始寫入新的日誌文件。

對於其他一些沒有被設計為適當的守護程序並且不理解這個信號的程序,這可能是一個問題,你必須殺死並重新啟動它們。這不適用於 Nginx。

引用自:https://serverfault.com/questions/950978