実行していない場合はgrep再起動スクリプト

実行していない場合はgrep再起動スクリプト

こんにちは皆さん、ここに問題があります。バックグラウンドで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

おすすめ記事