我正在为 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 非常适合。具体参考您的场景,此页面上详细介绍了示例 logrotate 配置。信号传递如下:
PHP-FPM 信号定义在: http: //php-fpm.org/wiki/Documentation
是的,您需要发送此信号,但与其手动发送,不如在以下脚本中添加调用: