(системная версия 229)
У меня есть основная служба A и дополнительная служба B. Основная служба A может работать сама по себе. Но сервис B не может работать правильно сам по себе: ему нужно, чтобы A работал (технически B может работать, но я хочу, чтобы systemd
этого не произошло). Моя цель: Если A не работает, B не должен работать. Учитывая, что A и B работают, когда A останавливается или умирает/падает, B следует остановить.
Как мне этого добиться?
Я приближаюсь, добавляя элементы [Unit] в b.service, используя
Requisite=A.service
After=A.service
Результатом вышеизложенного является то, что
- B не запустится, если A не работает (хорошо).
- B останавливается, когда A останавливается (хорошо).
- Однако, если я убью A, служба B продолжит работать (плохо).
Как я могу исправить это последнее поведение? Ни PartOf
, ни BindsTo
, кажется, не помогают, но, возможно, у меня нет правильного заклинания комбинаций вариантов? Из справочных страниц мне не ясно, какие параметры можно комбинировать.
man-страница systemd.unit: https://www.freedesktop.org/software/systemd/man/systemd.unit.html Связано: Ошибка зависимости Systemctl , остановить зависимые службы