[devel] Нужно небольшое пояснение по *.service

Такасеев Алексей Геннадиевич alexei на taf.ru
Вт Май 14 13:29:50 MSK 2013


Приветствую!

Нужна небольшая консультация по тому, как правильно создать
*.service-файл для такой ситуации:

Есть некий сервис, которя запускается оооочень долго, и завершает
работу так же приличное время. В среднем от 3 до 10 минут, реально
запускается 100500 разных программ от встроенного LDAP до демонов
на java и jetty через собственную систему скриптов.

Нарисовал вот такой файл:

[Unit]
Description=Zimbra mail service
After=network.service remote-fs.target syslogd.service ntpd.service crond.service

[Service]
Type=oneshot
RemainAfterExit=yes
StandardOutput=syslog
ExecStart=/etc/rc.d/init.d/zimbra start
ExecStop=/etc/rc.d/init.d/zimbra stop
ExecReload=/etc/rc.d/init.d/zimbra reload

# The server might be slow to stop, and that's fine. Don't kill it
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

Запускается все замечательно, а вот с остановом возникла серьезная проблема -
systemd просто убивает все процессы, что не есть правильно, ибо по zimbra stop
выполняется пароход и небольшая баржа всяких действий.

Подскажите, плз, как заставить systemd дожаться завершения
/etc/rc.d/init.d/zimbra stop, и только потом продолжить свои действия?

-- 



Подробная информация о списке рассылки Devel