CentOS7 systemctl chamando ExecStop na reinicialização depois que meus processos já foram encerrados

CentOS7 systemctl chamando ExecStop na reinicialização depois que meus processos já foram encerrados

Eu tenho um script systemd que é o seguinte:

 [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

Agora... se eu tentar executar, sudo systemctl start mySites.serviceparece que o serviço foi executado e todas as minhas coisas foram iniciadas corretamente. Se eu fizer um, stoptambém funciona. Então, na inicialização do sistema operacional, ele também inicia corretamente. O problema está no desligamento do sistema operacional. Estou reiniciando e parece que o ExecStopWAS também foi chamado... mas tarde demais... vejo nos logs que todos os meus processos foram eliminados, como posso ver em meus logs:

 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

Então .. ExecStopparece estar sendo chamado tarde demais porque alguém já eliminou os processos que iniciei originalmente. No entanto, já estou configurando Before=shutdown.target reboot.target halt.target.

Acho que o problema pode ser que meu ExecStoptempo limite pode demorar mais que o padrão e, portanto, o systemd acaba enviando SIGTERM. Agora ... eu configurei KillMode=nonee SendSIKKILL=noaté mesmo todos os tempos limite possíveis para 5 minutos para e TimeoutStopUSec( com certeza leva menos de 5 minutos).TimeoutSecTimeoutStopSecExecStop

Ainda sem sorte.

Alguma ideia de como posso consertar isso? Estou executando o CentOS 7.

Desde já, obrigado,

Responder1

Tentar

[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

informação relacionada