LINUX.ORG.RU
решено ФорумAdmin

Управление вызовом сервиса из OnFailure для разных юнитов systemd

 , ,


0

1

Всем суток.

Перебрался относительно недавно с управления запуском нужными мне скриптами с крона на системд и, надо заметить, не жалею. Да, немного сложнее, но гибкость очень впечатляет. Журналирование всех юнитов с единым интерфейсом тоже доставляет. Надо было раньше освоить системд.

Вопрос следующий: есть ли документированная возможность массово управлять юнитами, в частности добавлять и удалять настройку, какой сервис должен быть запущен в случае фейла основного сервиса, т.е. то, что обеспечивается указанием сервиса в OnFailure= в конфиге юнита. Может быть есть в каком-то едином конфиге это? Не очень удобно городить для каждого отдельного юнита, а добавлять нужно много, удалять тоже приходится. Из костыльных методов вижу замену по регулярке через sed или друг утильку. Ткните, пожалуйста, в доки или хауту.

Ответ на: комментарий от eternal_sorrow

Забавно, я читал об этом в мане по юнитам, но не так понял эту функцию. Вроде неплохо. Думаю, можно сделать симлинк name.service.d для нужных сервисов на какой-нибудь /etc/systemd/user/onfailure.conf, в которм опишу общие правила. Спасибо, змеюка.

PawsOnFire
() автор топика
Ответ на: комментарий от PawsOnFire

если название юнита, допустим, mydaemon.service, то чтобы создать drop-in, нужно создать директорию /etc/systemd/system/mydaemon.service.d и в ней файл с произвольным именем и расширением .conf, допустим custom.conf. в файле пропиши нужные тебе опции в соответствующих секциях, как в полноценном файле юнита, например:

[Unit]
OnFailure=fail.service

Ну и да, этот файл конечно же может быть симлинком на другой файл, в том числе на общий конфиг для нескольких юнитов.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Да, я так и сделал.

tree
.
├── dnsmasq-custom.service
├── dnsmasq-custom.service.d
│   └── onfailure.conf -> onfailure.conf
├── on-crypt.service
├── on-crypt.service.d
│   └── onfailure.conf -> onfailure.conf
├── onfailure.conf
├── onfailure.service
├── openvpn-client@suffon.service
├── openvpn-client@suffon.service.d
│   └── onfailure.conf -> onfailure.conf
├── zunno.service
└── zunno.service.d
    └── onfailure.conf -> onfailure.conf

4 directories, 10 files
PawsOnFire
() автор топика
Ответ на: комментарий от eternal_sorrow

Все ок, я просто вырезал полные пути из-за пахабных составляющих, чтобы не прилетело от модераторов) На самом деле симлинки до onfailure.conf, который лежит на уровень выше.

PawsOnFire
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.