kill – 这个logrotate nginx配置有什么作用?

在我看到的/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进程,这没有意义,所以我一定是错的.

它在做什么?

最佳答案
Nginx responds to the USR1 signal通过重新打开其日志文件.

默认情况下,USR1信号会杀死一个程序,但它应该被处理以执行程序认为有用的任何操作.每个程序定义它对USR1和USR2的作用;对于Nginx,它重新打开日志文件(用于日志轮换)并执行新实例(用于升级).

按照惯例,大多数守护进程通过重新加载其配置文件来响应HUP信号. Nginx遵循这一惯例. HUP信号的最初意图是将会话结束发送到交互式进程(调制解调器挂起 – 用户已经离开,继续没有意义),但这种含义不适用于守护进程.

转载注明原文:kill – 这个logrotate nginx配置有什么作用? - 代码日志