有沒有一種優雅的方式來獲取 sendmail 中的新更改?

有沒有一種優雅的方式來獲取 sendmail 中的新更改?

是否有一種優雅的方法可以讓 Sendmail 重新加載/處理配置更改,而sendmail.mc無需完全重新啟動服務並可能影響當時正在進行的 smtp 傳遞?

我想我正在尋找apachectl -k gracefulapache 中的 sendmail 等效項。

答案1

sendmail 依賴重試機制SMTP協定為了交付的可靠性,並且不需要依賴巧妙的伺服器實現。這就是為什麼據我所知,這種情況不存在。

當您重新啟動時,sendmail 只是中止任何傳入連線並出現臨時錯誤,並發送 421 回應,期望稍後按照 RFC 5321 重試傳遞第3.8節 和第 4.2.5 節。

重新啟動後,任何中斷和未傳遞的傳出訊息也將從 sendmail 維護的佇列中處理。

答案2

sendmail.mc您需要追蹤的不是更改,而是sendmail.cf。 Sendmail 讀取sendmail.cfsendmail.mc用 m4 編寫,輸出為sendmail.cf.所以你需要先生成它,然後產生kill -HUPsendmail進程ID。

在Debian/Ubuntu系統中運作sendmailconfig就足夠了。在 CentOS 中你需要類似的東西:

cd /etc/mail
/etc/mail/make
service sendmail restart

你就完成了。這些會產生最新的sendmail.cf並隨後重新啟動 sendmail。

相關內容