Я пытаюсь понять, есть ли способ создать мягкую зависимость между сервисами systemd. По сути, я хотел бы создать «зонтичную» службу, которая запускает другие службы, помеченные как (мягкие) зависимости, но если и только если они включены - зонт должен никогда запустить зависимую службу, которая отключена.
В частности, я получил запрос на вытягивание для cfengine-systemd которая направлена на создание такого зонтичного подразделения. К сожалению, предлагаемые cfengine3.service
unit не соблюдает включенное / выключенное состояние зависимых блоков и запускает их в любом случае.
Раньше я пробовал делать то же самое с помощью целевого юнита, но позорно провалился.
Какие-нибудь подсказки?
заранее спасибо
Обновить после вопроса Майкла: я бы сказал, что если cfengine3.service
отключен, systemd не должен пытаться запускать зависимые службы.
Включенные / отключенные состояния определяют, запускаются ли службы / не запускаются ли службы при загрузке. В этом контексте я бы посоветовал оставить зависимые службы отключенными и изменить только состояние зонтичной службы. Чтобы зонтичная служба запускала только некоторые из зависимостей, они должны быть мягко связаны в каталог .requires зонтичной службы (например, в каталог /etc/systemd/system/umbrella-unit.service/requires).