Я пытаюсь использовать супервизор для управления постфиксом. Обычный метод - указать команду, которая запускает демон, я использую postfix -c /etc/postfix start
. В справочной странице postfix сказано, что для остановки вы должны заменить start
на stop
в приведенной выше команде.
Я не вижу способа указания другой команды для остановки демона, просто сигнал. master
говорит , что страница руководства сигнал TERM
будет функционировать , как если бы использовался postfix abort
, но ничего не говорится о выключая грациозно через сигнал.
Кроме того, метод начала / остановки в первом абзаце является хитрым в том, что касается надзора. Сценарий выполняет кучу проверок, а затем вызывает master
, qmgr
и pickup
с master
в качестве лидера группы процессов. Таким образом, supervisord имеет указатель на бесполезный PID (тот, с которым выполнялся скрипт) и поэтому не может использовать этот PID для остановки демона. То, к чему он должен иметь отношение, является master
процессом.
Как далеко у меня есть:
[program:master]
process_name = master
priority = 5
directory = /etc/postfix
command = /usr/sbin/postfix -c /etc/postfix start
startsecs = 0
user = root
stopsignal = INT
Это запускает постфикс, но не может его остановить.