Quiero ejecutar algún script cuando falla un servicio. Lo más parecido a esto es la FailureAction=opción (en la [Service]sección), pero solo ofrece comandos de reinicio.
11
Hay una OnFailure=directiva en la sección [Unit], documentada en systemd.unit (5) . Se define de la siguiente manera:
Una lista separada por espacios de una o más unidades que se activan cuando esta unidad entra en el estado "fallido".
(También hay una OnFailureJobMode=directiva en la misma sección que permite establecer el modo de trabajo para activar OnFailure = unidades).
/etc/systemd/systemy coloque su nombre en laOnFailure=directiva.También puede usar
ExecStopPostpara ejecutar un comando directamente en lugar de iniciar una unidad.No estaba contento con el
OnFailureentorno, así que seguí buscando y encontrandoExecStopPost.El siguiente ejemplo real, si la tarea principal falla, systemd ejecutará un
gitcomando.https://www.freedesktop.org/software/systemd/man/systemd.service.html
fuente