Como agrupar / compor serviços do systemd?

6

Eu tenho três serviços systemd (contêineres do Docker, mas isso não é importante). Todos esses três serviços precisam estar em execução para que o aplicativo esteja totalmente funcional.

Para simplificar os procedimentos para a equipe de operações, criei um quarto serviço systemd para agrupá-los, usando as diretivas Requires e PartOf . Iniciar e interromper este serviço iniciará e interromperá os três contêineres na ordem correta.

O último desafio é obter o quarto serviço systemd para mostrar o status correto. No momento, ele mostra "carregado / inativo" após inicializar os serviços. É possível configurá-lo de forma que mostre "carregado / ativo" quando e somente quando os três primeiros serviços estiverem funcionando?

[Unit]
Description=This is the group
Requires=a.service b.service c.service

[Service]
ExecStart=/bin/echo "Starting"
ExecStop=/bin/echo "Stopping"

[Install]
WantedBy=local.target

O a.service , b.service e c.service contém PartOf=group.service

    
por Kimble 14.08.2015 / 08:58

1 resposta

1

Acho que você precisa adicionar uma cláusula After= . Se seus três serviços estiverem vinculados, você também poderá simplificar seu Requires .

Se você também quiser que este quarto serviço pare quando os outros 3 fizerem, você também precisará adicionar uma entrada BindsTo .

Como em:

[Unit]
Description=This is the group
Requires=c.service
After=c.service
BindsTo=c.service
    
por 07.03.2017 / 18:36

Tags