有没有一种优雅的方式让Sendmail重新加载/处理来自sendmail.mcconfiguration更改,而没有完全重新启动服务,并可能影响当时正在进行的smtp传递?
我想我正在寻找相当于apachectl -k graceful在apache中apachectl -k graceful的sendmail。
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进程ID。
在运行sendmailconfig Debian / Ubuntu系统中就足够了。 在CentOS中你需要这样的东西:
cd /etc/mail /etc/mail/make service sendmail restart
你完成了。 这些产生一个最新的sendmail.cf然后重新启动sendmail。