我正在将所有服务器的日志轮转任务移动到logrotate。 服务器有几个PHP-FPM池,每个池都configuration了一个单独的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将非常适合。 具体参考您的场景,在此页面上详细介绍一个logrotateconfiguration示例。 信号通过如下:
kill -USR1 `cat /path/to/php-fpm.pid`
PHP-FPM信号定义在: http : //php-fpm.org/wiki/Documentation
是的,你需要发送这个信号,而不是手动做,最好添加后续脚本的调用: ... postrotate /usr/lib/php5/php5-fpm-reopenlogs endscript ...