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/system
y coloque su nombre en laOnFailure=
directiva.También puede usar
ExecStopPost
para ejecutar un comando directamente en lugar de iniciar una unidad.No estaba contento con el
OnFailure
entorno, así que seguí buscando y encontrandoExecStopPost
.El siguiente ejemplo real, si la tarea principal falla, systemd ejecutará un
git
comando.https://www.freedesktop.org/software/systemd/man/systemd.service.html
fuente