CentOS7 systemctl вызывает ExecStop при перезагрузке после того, как мои процессы уже завершены

CentOS7 systemctl вызывает ExecStop при перезагрузке после того, как мои процессы уже завершены

У меня есть скрипт systemd, который выглядит следующим образом:

 [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

Теперь... если я пытаюсь выполнить, sudo systemctl start mySites.serviceто, похоже, служба запускается и все мои вещи запускаются правильно. Если я делаю stopэто тоже работает. Затем, при загрузке ОС, он также запускается правильно. Проблема в завершении работы ОС. Я перезагружаю ее, и кажется, что если бы WAS ExecStopтоже вызывался... но слишком поздно... Я вижу в журналах, что все мои процессы получили kill, как я могу видеть в своих журналах:

 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

Так что... ExecStopпохоже, вызывается слишком поздно, потому что кто-то уже убил процессы, которые я изначально запустил. Тем не менее, я уже устанавливаю Before=shutdown.target reboot.target halt.target.

Я думаю, проблема может быть в том, что my ExecStopможет занять больше времени, чем тайм-аут по умолчанию, и, следовательно, systemd в конечном итоге отправляет SIGTERM. Теперь... Я установил KillMode=none, SendSIKKILL=noи даже все возможные тайм-ауты на 5 минут для TimeoutStopUSec, TimeoutSecи TimeoutStopSec(наверняка my ExecStopзанимает меньше 5 минут).

По-прежнему безуспешно.

Есть идеи, как это исправить? У меня CentOS 7.

Заранее спасибо,

решение1

Пытаться

[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

Связанный контент