CentOS7 systemctl llama a ExecStop al reiniciar después de que mis procesos ya han finalizado

CentOS7 systemctl llama a ExecStop al reiniciar después de que mis procesos ya han finalizado

Tengo un script systemd que es el siguiente:

 [Unit]
 Description=My sites
 Before=shutdown.target reboot.target halt.target

 [Service]
 Type=oneshot
 ExecStart=/bin/bash -c '/etc/xxx/mySites start'
 ExecStop=/bin/bash -c '/etc/xxx/mySites stop'
 KillMode=none
 SendSIGKILL=no
 TimeoutStopUSec=5min
 TimeoutSec=5min
 TimeoutStopSec=5min


 [Install]
 WantedBy=multi-user.target

Ahora... si intento ejecutarlo, sudo systemctl start mySites.serviceparece que el servicio se ejecuta y todas mis cosas se inician correctamente. Si hago un stoptambién funciona. Luego, al iniciar el sistema operativo, también comienza correctamente. El problema está en el apagado del sistema operativo. Lo estoy reiniciando y parece que FUE ExecStopllamado también... pero demasiado tarde... Veo en los registros que todos mis procesos fueron eliminados, como puedo ver en mis registros:

 signal 15, SIGTERM, received from process 1 userId 0
 si_code: 0, SI_USER, signal from kill(2), sigsend(2), raise(3C) or abort(3C)
 si_signo 15  si_errno 0

Entonces... ExecStopparece que me están llamando demasiado tarde porque alguien ya eliminó los procesos que inicié originalmente. Sin embargo, ya me estoy preparando Before=shutdown.target reboot.target halt.target.

Creo que el problema podría ser que ExecStoppuede tardar más que el tiempo de espera predeterminado y, por lo tanto, systemd termina enviando SIGTERM. Ahora... he configurado KillMode=nonee SendSIKKILL=noincluso todos los tiempos de espera posibles en 5 minutos para y TimeoutStopUSec( seguro que me toma menos de 5 minutos).TimeoutSecTimeoutStopSecExecStop

Todavía no hubo suerte.

¿Alguna idea de cómo puedo solucionar este problema? Estoy ejecutando CentOS 7.

Gracias de antemano,

Respuesta1

Intentar

[Unit]
Description=My sites
After=NetworkManager.service
Requires=NetworkManager.service

[Service]
Type=oneshot
ExecStart=/bin/bash -c '/etc/xxx/mySites start'
ExecStop=/bin/bash -c '/etc/xxx/mySites stop'
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

información relacionada