![Parada sequencial Systemd de instâncias de unidade de modelo](https://rvso.com/image/789288/Parada%20sequencial%20Systemd%20de%20inst%C3%A2ncias%20de%20unidade%20de%20modelo.png)
Eu tenho uma unidade de modelo que preciso criar para iniciar/interromper alguns serviços em execução em uma determinada porta. algo como [email protected]
, [email protected]
.
[Unit]
After=network.target
PartOf=services.target
[Service]
ExecStart=app run --port %i
ExecStopPost=sleep 5
[Install]
WantedBy=multi-user.target
Criei uma meta para gerenciar todos esses serviços de uma vez.
cat services.target
[Unit]
[email protected] [email protected]
Isso funciona bem. Todos eles entregam a mesma API, portanto, para interromper os serviços, quero reiniciar apenas um processo por vez.
. Uma solução poderia ser usar After
no unit template
, mas isso não é muito flexível, pois eu poderia ter mais ou menos desses processos em execução. Se eu remover um, posso quebrar a cadeia de dependências.... Então a única solução que encontrei foi para escrever um script bash que pare/inicie as instâncias uma por uma, com um sleep
no meio. Significa que pode usar o target
to stop
e start
mas não restart
... o que não é conveniente.
Que outras opções eu tenho? Possibilidade de usar notify
?