Назад | Перейти на главную страницу

Мягкая зависимость в systemd

Я пытаюсь понять, есть ли способ создать мягкую зависимость между сервисами systemd. По сути, я хотел бы создать «зонтичную» службу, которая запускает другие службы, помеченные как (мягкие) зависимости, но если и только если они включены - зонт должен никогда запустить зависимую службу, которая отключена.

В частности, я получил запрос на вытягивание для cfengine-systemd которая направлена ​​на создание такого зонтичного подразделения. К сожалению, предлагаемые cfengine3.service unit не соблюдает включенное / выключенное состояние зависимых блоков и запускает их в любом случае.

Раньше я пробовал делать то же самое с помощью целевого юнита, но позорно провалился.

Какие-нибудь подсказки?

заранее спасибо

Обновить после вопроса Майкла: я бы сказал, что если cfengine3.service отключен, systemd не должен пытаться запускать зависимые службы.

Включенные / отключенные состояния определяют, запускаются ли службы / не запускаются ли службы при загрузке. В этом контексте я бы посоветовал оставить зависимые службы отключенными и изменить только состояние зонтичной службы. Чтобы зонтичная служба запускала только некоторые из зависимостей, они должны быть мягко связаны в каталог .requires зонтичной службы (например, в каталог /etc/systemd/system/umbrella-unit.service/requires).