So führen Sie ein Shell-Skript aus, bevor Sie einen Dienst in Monit im Falle eines Absturzes neu starten

So führen Sie ein Shell-Skript aus, bevor Sie einen Dienst in Monit im Falle eines Absturzes neu starten

Ich verwende Monit 5.3.2 auf meiner Linux-Box. Ich überwache einige Dienste mit Monit. Ich möchte ein Skript ausführen, bevor ich den Neustartbefehl ausführe. Dafür habe ich die folgenden Bedingungen verwendet.

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

Leider wird nur die Neustartaktion ausgeführt.

Kann mir bitte jemand helfen, herauszufinden, warum die erste Regel nicht ausgeführt wird? Gibt es eine andere Möglichkeit, das Problem zu lösen?

Antwort1

Dies ist keine endgültige Antwort, da ich ein Neuling bin, der derzeit einem ähnlichen Problem nachgeht.

Ich habe derzeit den Verdacht, dass die letzte Regel alle vorherigen Regeln außer Kraft setzt.

Versuchen Sie in diesem Fall Folgendes:

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

verwandte Informationen