クラッシュが発生した場合に Monit でサービスを再起動する前にシェル スクリプトを実行する方法

クラッシュが発生した場合に Monit でサービスを再起動する前にシェル スクリプトを実行する方法

私は Linux ボックスで Monit 5.3.2 を使用しています。Monit を使用していくつかのサービスを監視しています。再起動コマンドを実行する前にスクリプトを実行したいのですが、そのために以下の条件を使用しました。

if does not exist for 2 times within 3 cycles then exec  "/bin/bash -c 'touch /tmp/somefile'" as uid someuser and gid someuser

if does not exist for 10 cycles then restart

残念ながら、再起動アクションのみが実行されます。

最初のルールが実行されない理由を特定するのを手伝ってくれる人はいますか? 問題を解決する他の方法はありますか?

答え1

これは決定的な答えではありません。私は現在同様の問題を追いかけている初心者です。

現時点では、最後のルールが以前のすべてのルールに優先するのではないかという疑念を抱いています。

もしそうなら、次のことを試してください:

if does not exist for 2 times within 3 cycles 
then exec  "/bin/bash -c 'touch /tmp/somefile'" as uid someuser and gid someuser 
ELSE if does not exist for 10 cycles then restart

関連情報