Me gustaría saber si hay una manera Systemd
de reiniciar A.service
( After
) cuando B.service
se inicia o se vuelve a cargar (solo recargar la configuración), si es posible sin editar el sistema B.service
que instala y actualiza.
A.service
debe comenzar incluso si B.service
no está instalado, deshabilitado o detenido.
A.service
:
[Unit]
After = B.service network-online.target
Wants = B.service
[Service]
Type=oneshot
ExecStart = /script.sh start
ExecStop = /script.sh stop
RemainAfterExit=yes
[Install]
WantedBy = network-online.target
B.service
:
[Unit]
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/cmd start
ExecStop=/cmd stop
ExecReload=/cmd reload
PIDFile=/var/run/cmd.pid
[Install]
WantedBy=multi-user.target
Overriding vendor settings
pero esto parece aún más fácil y prometedor, solo la excitación es que no quieroA
parar si meB
detengo, soloA.restart
siB.start
, de todos modos, haré alguna prueba pronto y veré si hay alguna forma de manejarlo, entonces te lo haré saberPartOf
yRestart=always
juntos?Restart=
documentación, no estoy seguro de cuál es el comportamiento con losoneshot
servicios, pero de todos modos:When the death of the process is a result of systemd operation (e.g. service stop or restart), the service will not be restarted
si entiendo correctamente, detener manualmente B detendría APartOf
no es una solución para la pregunta, disfrute de todos modos.PartOf
conRestart=always
? ¿Intentaste eso?