Есть ли способ управлять двумя инстанцированными службами systemd как единым целым?

Есть ли способ управлять двумя инстанцированными службами systemd как единым целым?

У меня есть пара веб-сервисов Python, которые я пытаюсь запустить на компьютере с Fedora 15. Они запускаются с помощью Paster, и единственное отличие в их запуске — это считываемый ими файл конфигурации.

Кажется, это хорошо подходит для инстанцированных служб systemd, но я хотел бы иметь возможность управлять ими как единым целым. Цель systemd, требующая обе службы, кажется способом решения этой проблемы. Запуск цели запускает обе службы, но остановка цели оставляет их работающими.

Вот файл сервиса:

[Unit]
Description=AUI Instance on Port %i
After=syslog.target

[Service]
WorkingDirectory=/usr/local/share/aui
ExecStart=/opt/cogo/bin/paster serve --log-file=/var/log/aui/%i deploy-%i.ini        
Restart=always
RestartSec=2
User=aui
Group=aui

[Install]
WantedBy=multi-user.target

А вот и целевой файл:

[Unit]                    
Description=AUI           
[email protected]
[email protected]
After=syslog.target   

[Install]                 
WantedBy=multi-user.target

Возможна ли вообще такая группировка в systemd?

решение1

Посмотрите на использование BindsToопции для связывания юнитов вместе. systemd.unit(5)Страница руководства описывает это так:

Привязывает к=

Настраивает зависимости требований, очень похожие по стилю на Requires=, однако в дополнение к этому поведению, он также объявляет, что этот блок останавливается, когда любой из перечисленных блоков внезапно исчезает. Блоки могут внезапно, неожиданно исчезать, если служба завершается по собственному выбору, устройство отключается или точка монтирования отмонтируется без участия systemd.

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

Не забывайте, что вы также можете использовать Before/ After, чтобы указать порядок, в котором они должны начинаться, если это необходимо.

Связанный контент