Monit は php5-fpm を再起動できません

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   

「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

それが役立つかどうか確認してください。

関連情報