Назад | Перейти на главную страницу

Monit не может перезапустить php5-fpm

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   

перезапуск php5-fpm вручную с помощью команды «service php5-fpm restart» устраняет эту ошибку, пока она не повторится снова.

Сервер - ubuntu 14.04. PHP 5.6.9

Я развернул контейнер докеров с Ubuntu 14.04, monit и php5-fpm из PPA ondrey.

Вот что я получаю после удаления сокета 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 vs sysvinit, например, в этом случае: https://stackoverflow.com/questions/23464157/cant-start-or-stop-php-fpm-on-ubuntu

Я бы посоветовал вам изменить конфигурацию monit для php5-fpm на:

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

и посмотрите, поможет ли это.