こんにちは皆さん、ここに問題があります。バックグラウンドでnohup phpスクリプトを実行し、クラッシュ時に常に実行され、再起動されることを確認する必要があります。毎分、crontabジョブを使用して次のbashスクリプトを実行しています。
#!/usr/bin/bash
ps -ef|grep -v grep |grep script_name
if [ $? != 0 ]; then
nohup php path/to/script/script_name &
fi
スクリプトを手動で終了しましたが、再起動されませんでした。現在Centos 6.5でこれを行う必要があります。 Centos 7.1で同じ設定をテストしましたが、うまくいきます。 Centos 6.5で動作する代替案はありますか?
答え1
最善の方法はsystemdを使用することですが、centos 6.5を使用できるかどうかはわかりません。
systemdがない場合:スクリプトを確認するスクリプトよりもPHPを起動して再起動するスクリプトを実行する方が簡単です。このような:
#! /bin/bash
while ! php path/to/script/script_name; do
:
done
必要に応じて、nohupを使用してこのラッパースクリプトを起動できます。
通常、以下を使用する必要がありますpgrep
。
pgrep --full script_name