Назад | Перейти на главную страницу

Порядок ввода systemd в debian jessie

У меня есть несколько серверов debian 8 с конфигурацией по умолчанию.

У них есть apache2, и я хочу добавить monit ( https://mmonit.com/monit/ ) для дополнительной доступности.

Чтобы управлять остановками и запусками apache, управляемыми оператором, я хотел бы добавить monit монитор и неконтролирующий действия с модулем apache systemd. Я подумал о том, чтобы отправить этот добавляемый файл в конфигурацию systemd apache (/etc/systemd/system/apache2.service.d/ папка):

[Service]
ExecStartPost=-/usr/bin/monit monitor apache2
ExecStop=-/usr/bin/monit unmonitor apache2

Команда ExecStartPost отлично работает.

К сожалению, у меня есть некоторые проблемы с командой ExecStop, потому что она выполняется после фактической остановки службы.

Я понял, что есть еще один ExecStop, определенный в /run/systemd/generator.late/apache2.service (файл, автоматически сгенерированный systemd-sysv-generator). Конечно, в наличии нескольких команд ExecStop проблем нет, проблема здесь в порядке:

root@debianjessie:~# systemctl show apache2 | grep ^ExecStop
ExecStop={ path=/etc/init.d/apache2 ; argv[]=/etc/init.d/apache2 stop ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }
ExecStop={ path=/usr/bin/monit ; argv[]=/usr/bin/monit unmonitor apache2 ; ignore_errors=yes ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }

Я нашел обходной путь, переопределяющий всю последовательность ExecStop в моем всплывающем файле:

[Service]
ExecStartPost=-/usr/bin/monit monitor apache2
ExecStop=
ExecStop=-/usr/bin/monit unmonitor apache2
ExecStop=/etc/init.d/apache2 stop

но я думаю, что это не очень "чистое" решение на мой взгляд.

Чтение Вот дроп-ин /и т.д/ должны быть те, которые имеют наивысший приоритет, поэтому я не понимаю, почему мое действие ExecStop выполняется последним.

Я что-нибудь упускаю?

Заранее спасибо. С.

Почему бы не повернуть его (без изменения каких-либо модулей systemd!), Используя monit для запуска / остановки вашего apache?

Если вы используете /bin/systemctl start apache2.service так как start program в monitrc и то же самое для stop, вы можете просто использовать monit с monit stop apache сделать это "все включено";)