Chcę uruchomić skrypt w przypadku awarii usługi. Najbliższą rzeczą, jaką widzę, jest FailureAction=
opcja (w [Service]
sekcji), ale oferuje ona tylko polecenia ponownego uruchomienia.
12
W OnFailure=
sekcji znajduje się dyrektywa [Unit]
udokumentowana w systemd.unit (5) . Jest on zdefiniowany w następujący sposób:
Rozdzielona spacjami lista jednej lub więcej jednostek, które są aktywowane, gdy jednostka przechodzi w stan „awarii”.
(W OnFailureJobMode=
tej samej sekcji znajduje się również dyrektywa, która pozwala ustawić tryb pracy dla aktywacji OnFailure = jednostek.)
/etc/systemd/system
i umieść jej nazwę wOnFailure=
dyrektywie.Możesz także użyć
ExecStopPost
do uruchomienia polecenia zamiast uruchamiania jednostki.Nie byłem zadowolony z tego
OnFailure
ustawienia, więc szukałem i znalazłemExecStopPost
.Poniższy prawdziwy przykład, jeśli główne zadanie nie powiedzie się, systemd uruchomi
git
polecenie.https://www.freedesktop.org/software/systemd/man/systemd.service.html
źródło