是否有一种优雅的方式可以让 Sendmail 重新加载/处理配置更改,而sendmail.mc
无需完全重新启动服务并可能影响当时正在进行的 smtp 传送?
我想我正在寻找apachectl -k graceful
apache 中与 sendmail 等效的程序。
答案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 进程 ID。
在 Debian / Ubuntu 系统上运行sendmailconfig
就足够了。在 CentOS 中你需要类似的东西:
cd /etc/mail
/etc/mail/make
service sendmail restart
这样你就大功告成了。这些会产生一个更新sendmail.cf
,然后重新启动 sendmail。