[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