[devel] Нужно небольшое пояснение по *.service
Sergei Epiphanov
serpiph на nikiet.ru
Вт Май 14 13:58:04 MSK 2013
On 14 мая 2013 09:29 Такасеев Алексей Геннадиевич wrote:
...
> Запускается все замечательно, а вот с остановом возникла серьезная проблема
> - systemd просто убивает все процессы, что не есть правильно, ибо по zimbra
> stop выполняется пароход и небольшая баржа всяких действий.
>
> Подскажите, плз, как заставить systemd дожаться завершения
> /etc/rc.d/init.d/zimbra stop, и только потом продолжить свои действия?
При остановке сервиса systemd сначала выполняет строки ExecStop=. Если их
выполнение не укладывается в TimeoutSec= или TimeoutStopSec=, то вызывается
KillSignal= (если это разрешено SendSIGKILL=), а затем завершает всё
прибиваением процессов (в зависимости от KillMode=).
Во-первых, есть параметры (man systemd.service)
TimeoutSec=
TimeoutStopSec=
Если их указать равными нулю, то systemd не будет принудительно убивать
процессы по истечении времени. Также есть параметр (man systemd.kill)
KillMode=
который позволяет не прибивать принудительно процессы при завершении сервиса
по таймауту.
--
С уважением, Епифанов Сергей
Подробная информация о списке рассылки Devel