Kill

這個 logrotate nginx 配置有什麼作用?

  • December 23, 2013

在我/etc/logrotate.d/nginx看到的,

/var/log/nginx/*.log {
       daily
       missingok
       rotate 52
       compress
       delaycompress
       notifempty
       create 640 nginx adm
       sharedscripts
       postrotate
               [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
       endscript
}

postrotate 腳本看起來像是在殺死 nginx 程序,這沒有意義,所以我一定是錯的。

它在做什麼?

USR1Nginx通過重新打開其日誌文件來響應信號。

預設情況下,USR1 信號會終止程序,但它的目的是處理程序認為有用的任何事情。每個程序都定義了它對 USR1 和 USR2 的作用;對於 Nginx,這是重新打開日誌文件(用於日誌輪換)並執行一個新實例(用於升級)。

按照慣例,大多數守護程序通過重新載入其配置文件來響應 HUP 信號。Nginx 遵循這個約定。HUP 信號的最初意圖是向互動程序發出會話結束的信號(調製解調器掛斷 - 使用者離開了,繼續沒有意義),但該含義不適用於守護程序。

引用自:https://unix.stackexchange.com/questions/106280