Существует ли изящный способ перезагрузить/обработать изменения конфигурации Sendmail sendmail.mc
без полного перезапуска служб и потенциального влияния на доставку smtp, которая выполняется в этот момент?
Думаю, мне нужен эквивалент sendmail apachectl -k graceful
в apache.
решение1
sendmail полагается на механизмы повторных попыток вSMTP-протоколдля надежности доставки и не нуждается в зависимости отумная реализация сервера. Вот почему, насколько мне известно, этого не существует.
При перезапуске sendmail просто прерывает все входящие соединения из-за временной ошибки и отправляет ответ 421, ожидая повторной доставки позже в соответствии с RFC 5321.раздел 3.8 и раздел 4.2.5.
Все прерванные и недоставленные исходящие сообщения будут обработаны из очереди, которую sendmail поддерживает после перезапуска.
решение2
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 после этого.