Вызов CentOS7 systemctl ExecStop на перезагрузке после моего procceses уже уничтожается

У меня есть 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 кажется, что сервис выполняется, и весь мой материал запускается правильно. Если я делаю a stop это работает также. Затем при начальной загрузке ОС это также запускается корректный. Проблема находится на завершении работы ОС. Я перезагружаю его, и это походит если ExecStop WAS, названная также..., но слишком поздно... Я вижу в журналах, что мои процессы, все получили уничтожение, поскольку я вижу в своих журналах:

 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.

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

Все еще никакая удача.

Какая-либо идея, как я могу зафиксировать это? Я выполняю CentOS 7.

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

4
задан 23 February 2015 в 17:57
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
-1
ответ дан 3 December 2019 в 04:35

Теги

Похожие вопросы