Monit 正确检测到 php5-fpm 不可用(如日志中所示)。但是,它似乎无法重新启动该服务。
日志:
[EDT Jun 11 18:04:20] error : 'php5-fpm' failed, cannot open a connection to UNIX[/var/run/php5-fpm.sock]
[EDT Jun 11 18:04:20] info : 'php5-fpm' trying to restart
[EDT Jun 11 18:04:20] info : 'php5-fpm' stop: /etc/init.d/php5-fpm
[EDT Jun 11 18:04:50] error : 'php5-fpm' failed to stop
这是 monit 的配置
check process php5-fpm with pidfile /var/run/php5-fpm.pid
group php #change accordingly
start program = "/etc/init.d/php5-fpm start"
stop program = "/etc/init.d/php5-fpm stop"
if failed unixsocket /var/run/php5-fpm.sock then restart
使用“service php5-fpm restart”手动重新启动 php5-fpm 可以清除此错误,直到再次发生。
服务器是 ubuntu 14.04。PHP 5.6.9
答案1
我确实使用来自‘ondrey’PPA 的 Ubuntu 14.04、monit 和 php5-fpm 启动了 docker 容器。
这是我移除 fpm 套接字后得到的结果:
[UTC Jun 12 17:03:06] error : 'php5-fpm' failed, cannot open a connection to UNIX[/var/run/php5-fpm.sock]
[UTC Jun 12 17:03:06] info : 'php5-fpm' trying to restart
[UTC Jun 12 17:03:06] info : 'php5-fpm' stop: /etc/init.d/php5-fpm
[UTC Jun 12 17:03:06] info : 'php5-fpm' start: /etc/init.d/php5-fpm
[UTC Jun 12 17:03:26] info : 'php5-fpm' connection succeeded to UNIX[/var/run/php5-fpm.sock]
看来 /etc/init.d/php5-fpm stop 在您的情况下失败了,查看脚本发现它失败的唯一方式是进程正在运行但脚本无法停止它们。返回代码为 2。
由于 ubuntu 已经存在 upstart 与 sysvinit 的问题,例如以下情况: https://stackoverflow.com/questions/23464157/cant-start-or-stop-php-fpm-on-ubuntu
我建议您将 php5-fpm 的 monit 配置更改为:
check process php5-fpm with pidfile /var/run/php5-fpm.pid
group php
start program = "/usr/sbin/service php5-fpm start"
stop program = "/usr/sbin/service php5-fpm stop"
if failed unixsocket /var/run/php5-fpm.sock then restart
看看是否有帮助。