
ログに表示されているように、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
それが役立つかどうか確認してください。