我正在为logrotate移动我所有服务器的日志轮换任务.服务器有几个
PHP-FPM池,每个池都配置了一个独立的error_log指令.
日志的logrotate配方非常简单:
/var/log/PHP/*.log { rotate 7 daily missingok notifempty delaycompress compress dateext sharedscripts postrotate # Need for signaling the PHP-fpm process? endscript }
我应该向PHP-fpm池发送一些信号来捕获error_log文件的新句柄(在postrotate脚本中)吗?如果是,哪个信号?
除了正常信号外,PHP-FPM还识别两个“用户定义”信号:SIGUSR1和SIGUSR2.
> SIGUSR1 – 将循环日志文件
> SIGUSR2 – 优雅地重新加载所有工人重装fpm conf / binary
对于日志文件轮换,SIGUSR1将非常适合.具体参考您的场景,this page详细介绍了示例logrotate配置.信号传递如下:
kill -USR1 `cat /path/to/PHP-fpm.pid`
PHP-FPM信号定义于:http://php-fpm.org/wiki/Documentation