![Detención secuencial de Systemd de instancias de unidad de plantilla](https://rvso.com/image/789288/Detenci%C3%B3n%20secuencial%20de%20Systemd%20de%20instancias%20de%20unidad%20de%20plantilla.png)
Tengo una unidad de plantilla que debo crear para iniciar/detener algunos servicios que ejecutan un puerto determinado. 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
Creé un objetivo para administrar todos estos servicios a la vez.
cat services.target
[Unit]
[email protected] [email protected]
Eso funciona bien. Todos ofrecen la misma API, por lo que para interrumpir los servicios, quiero reiniciar solo un proceso al mismo tiempo.
. Una solución podría ser usar After
en unit template
, pero esto no es muy flexible ya que podría tener más o menos de estos procesos ejecutándose. Si elimino uno, podría romper la cadena de dependencia... Así que la única solución que encontré fue escribir un script bash que detenga/inicie las instancias una por una, con un sleep
punto intermedio. Significa que puedo usar target
to stop
y start
but not restart
... lo cual no es conveniente.
¿Qué otra(s) opción(es) tengo? ¿Posibilidad de utilizar notify
?