Есть ли изящный способ перезагрузки / изменения конфигурации процесса Sendmail из sendmail.mc
без полного перезапуска служб и потенциального влияния на доставку smtp, которая выполняется в данный момент?
Думаю, я ищу для sendmail эквивалент apachectl -k graceful
в apache.
sendmail полагается на механизмы повтора в Протокол SMTP для надежности доставки и не должен зависеть от умная реализация сервера. Вот почему, насколько мне известно, этого не существует.
При перезапуске sendmail просто прерывает любые входящие соединения с временной ошибкой и отправляет ответ 421, ожидая, что доставка будет повторена позже в соответствии с RFC 5321. Раздел 3.8 и Раздел 4.2.5.
Любые прерванные и недоставленные исходящие сообщения будут обрабатываться из очереди, поддерживаемой sendmail после перезапуска.
Это не sendmail.mc
изменения, которые нужно отслеживать, но sendmail.cf
. Sendmail читает sendmail.cf
. sendmail.mc
записывается в m4, и на выходе получается sendmail.cf
. Так что вам нужно сначала произвести, а затем kill -HUP
идентификатор процесса sendmail.
В системах Debian / Ubuntu работает sendmailconfig
достаточно. В CentOS вам понадобится что-то вроде:
cd /etc/mail
/etc/mail/make
service sendmail restart
И все готово. Они производят актуальный sendmail.cf
и после этого перезапустите sendmail.