我有一个系统,每个用户(大约 20 个)都有自己的 nginx 实例和自己的小型 PHP5-FPM 进程池。前端 nginx 实例将请求代理到相应的 nginx 实例,然后该实例将其发送到 PHP5-FPM 或自行提供服务。
奇怪的是,每隔一段时间(几个月前一次,今天早上 6:30 一次),池都会全部退出,而不会向配置为写入的 php5-fpm.log 文件中写入任何内容。(然后前端开始返回 502 错误,因为它无法将请求发送给 PHP 工作者。)
我使用的是 Ubuntu 11.10 和 PHP 5.3.6,与默认软件包相比有一个变化:我更改了 cron 作业的语法,以便根据以下内容清理旧会话:这个答案在 ServerFault 上。新语法是:
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -amin +$(/usr/lib/php5/maxlifetime) -delete
我检查了当时的系统日志,当时唯一的活动是 cron 在早上 6:25 记录一个命令:
Feb 10 06:25:01 peninsula CRON[31060]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))
我没有看到任何/etc/cron.daily/
对 PHP5-FPM 产生任何影响的东西:
$ ls /etc/cron.daily/
apport apt aptitude bsdmainutils dpkg logrotate man-db mlocate passwd popularity-contest standard
有人遇到过类似的事情吗?有人能建议我下一步该去哪里吗?