Я хочу запустить какой-нибудь скрипт при сбое службы. Самое близкое, что я вижу к этому - это FailureAction=
опция (в [Service]
разделе), но она предлагает только команды перезагрузки.
11
В OnFailure=
разделе есть директива [Unit]
, документированная в systemd.unit (5) . Это определяется следующим образом:
Разделенный пробелами список из одного или нескольких модулей, которые активируются, когда этот модуль переходит в состояние «сбой».
(Также есть OnFailureJobMode=
директива в том же разделе, которая позволяет установить режим работы для активации OnFailure = единиц.)
/etc/systemd/system
и поместите ее имя вOnFailure=
директиву.Вы также можете использовать
ExecStopPost
для запуска команды напрямую, вместо запуска модуля.Я не был счастлив с
OnFailure
обстановкой, поэтому я продолжал искать и нашелExecStopPost
.Следующий реальный пример: если главная задача не выполняется, то systemd запустит
git
команду.https://www.freedesktop.org/software/systemd/man/systemd.service.html
источник