Detención secuencial de Systemd de instancias de unidad de plantilla

Detención secuencial de Systemd de instancias de unidad de plantilla

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 Afteren 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 sleeppunto intermedio. Significa que puedo usar targetto stopy startbut not restart... lo cual no es conveniente.

¿Qué otra(s) opción(es) tengo? ¿Posibilidad de utilizar notify?

información relacionada