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