Cómo ejecutar un script de shell antes de reiniciar un servicio en Monit en caso de falla

Cómo ejecutar un script de shell antes de reiniciar un servicio en Monit en caso de falla

Estoy usando Monit 5.3.2 en mi máquina Linux. Estoy monitoreando algunos servicios usando Monit. Quiero ejecutar un script antes de ejecutar el comando de reinicio. He utilizado las siguientes condiciones para lo mismo.

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

Lamentablemente, solo se ejecuta la acción de reinicio.

¿Alguien puede ayudarme a identificar por qué no se ejecuta la primera regla? ¿Hay alguna otra manera de resolver el problema?

Respuesta1

Esta no es una respuesta definitiva, ya que soy un novato y actualmente estoy persiguiendo un problema similar.

Actualmente tengo la sospecha de que la última regla anula todas las reglas anteriores.

Si es así, prueba:

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

información relacionada