Graças à sua pergunta / solução, tenho uma boa solução para mim que gostaria de compartilhar.
Meu requisito é ter um allservices.target
que inicie / pare / reinicie srv1.service
, srv2.service
e srv3.service
.
Um requisito é que eu possa parar, e. srv1.service
e os outros serviços e o alvo ainda estão sendo executados depois disso.
A chave é ter os serviços na diretiva Wants
nos serviços .target
e srv * .services PartOf=allservices.target
allservices.target
[Unit]
Description=start allservices
Wants=syslog.target network.target srv1.service srv2.service srv3.service
After=network.target
[Install]
WantedBy=multi-user.target
srv1.service
[Unit]
Description=run srv1.service
Wants=syslog.target network.target
PartOf=allservices.target
[Service]
ExecStart=/path/to/bin/start
ExecStop=/bin/kill $MAINPID
Restart=always
[Install]
WantedBy=allservices.target
Assim depois que eu bato systemctl start allservices.target
srv1-srv3 são iniciados, o mesmo acontece com stop
e restart
.
E se eu executar systemctl stop srv1.service
os outros serviços e o destino ainda estiverem em execução.