![Existe uma maneira de controlar dois serviços systemd instanciados como uma única unidade?](https://rvso.com/image/567638/Existe%20uma%20maneira%20de%20controlar%20dois%20servi%C3%A7os%20systemd%20instanciados%20como%20uma%20%C3%BAnica%20unidade%3F.png)
Eu tenho alguns serviços web python que estou tentando executar em uma caixa do Fedora 15. Eles estão sendo executados pelo paster, e a única diferença ao iniciá-los é o arquivo de configuração que eles lêem.
Parece uma boa opção para os serviços instanciados do systemd, mas gostaria de poder controlá-los como uma única unidade. Um alvo systemd que requer ambos os serviços parece ser a maneira de abordar isso. Iniciar o destino inicia ambos os serviços, mas interromper o destino os deixa em execução.
Aqui está o arquivo de serviço:
[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
E aqui está o arquivo de destino:
[Unit]
Description=AUI
[email protected]
[email protected]
After=syslog.target
[Install]
WantedBy=multi-user.target
Esse tipo de agrupamento é possível com o systemd?
Responder1
Veja como usar a BindsTo
opção de unir as unidades. A systemd.unit(5)
página do manual descreve assim:
Vincula-se a =
Configura dependências de requisitos, de estilo muito semelhante a Requires=, porém além desse comportamento, também declara que esta unidade é interrompida quando qualquer uma das unidades listadas desaparece repentinamente. As unidades podem desaparecer repentina e inesperadamente se um serviço for encerrado por sua própria escolha, um dispositivo for desconectado ou um ponto de montagem desmontado sem envolvimento do systemd.
Parece que você deve fazer o que quiser e amarrar uma unidade à outra para que sempre que o mestre parar, o escravo também pare e vice-versa para inicializar.
Não esqueça que você também pode usar Before
/ After
para especificar a ordem em que eles devem começar, se necessário.