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

Car*_*arl 5 kill logrotate signals nginx daemon

在我的/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
}
Run Code Online (Sandbox Code Playgroud)

postrotate 脚本看起来像是杀死了 nginx 进程,这没有意义,所以我一定是错的。

它在做什么?

Gil*_*il' 9

NginxUSR1通过重新打开其日志文件来响应该信号

USR1 信号在默认情况下会终止一个程序,但它意味着被处理以执行程序认为有用的任何事情。每个程序都定义了它对 USR1 和 USR2 的作用;对于 Nginx,即重新打开日志文件(用于日志轮换)并执行新实例(用于升级)。

按照惯例,大多数守护进程通过重新加载它们的配置文件来响应 HUP 信号。Nginx 遵循这个约定。HUP 信号的最初意图是向交互进程发出会话结束的信号(调制解调器挂断 — 用户已离开,继续没有意义),但该含义不适用于守护进程。