CentOS7 systemctl ruft ExecStop beim Neustart auf, nachdem meine Prozesse bereits beendet sind

CentOS7 systemctl ruft ExecStop beim Neustart auf, nachdem meine Prozesse bereits beendet sind

Ich habe ein systemd-Skript, das wie folgt lautet:

 [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

Wenn ich jetzt versuche, es auszuführen, sudo systemctl start mySites.servicescheint der Dienst ausgeführt zu werden und alle meine Sachen werden korrekt gestartet. Wenn ich ein mache, stopfunktioniert es auch. Dann startet es beim Booten des Betriebssystems auch korrekt. Das Problem liegt beim Herunterfahren des Betriebssystems. Ich starte es neu und es scheint, als ob ExecStopauch WAS aufgerufen wurde ... aber zu spät ... Ich sehe in den Protokollen, dass alle meine Prozesse beendet wurden, wie ich in meinen Protokollen sehen kann:

 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

Also … ExecStopscheint zu spät aufgerufen zu werden, da jemand die Prozesse, die ich ursprünglich gestartet habe, bereits beendet hat. Dennoch stelle ich bereits ein Before=shutdown.target reboot.target halt.target.

Ich denke , das Problem könnte sein, dass meins länger ExecStopals das Standard-Timeout dauern kann und systemd daher am Ende SIGTERM sendet. Nun... habe ich und sogar alle möglichen Timeouts auf 5 Minuten eingestellt und (meins dauert mit Sicherheit weniger als 5 Minuten).KillMode=noneSendSIKKILL=noTimeoutStopUSecTimeoutSecTimeoutStopSecExecStop

Immer noch kein Glück.

Irgendeine Idee, wie ich das beheben kann? Ich verwende CentOS 7.

Dank im Voraus,

Antwort1

Versuchen

[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

verwandte Informationen