在大部分Linux發行版本中,sendmail這個古老的郵件系統包是默認安裝的,裝完系統後,重啟時,不少兄弟遇到在啟動過程中,到了啟動sendmail服務的時候就停止了,沒有耐性和經驗的朋友這時候可能會以為系統出故障或者系統沒有裝好,其實既不是系統出故障,一般也不是系統沒有安裝好,而是系統sendmail的時候在查詢你設置的主機名的A記錄或反向域名記錄,由於全球9台DNS根系統都在美國,這個時候會去查詢本機主機名對應的dns A記錄,特別時你安裝系統時設置的一些“奇怪”的主機名的時候,比如webserver等等之類的,這個時候sendmail會去做這個操作過程。
Apr 28 13:41:36 webserver sendmail[3494]: gethostby*.getanswer: asked for "webserver IN AAAA", got type "A"
Apr 28 13:42:36 webserversendmail[3499]: gethostby*.getanswer: asked for "webserver IN AAAA", got type "A"
Apr 28 13:43:37 webserver sendmail: sendmail startup succeeded
Apr 28 13:43:37 webserver sm-msp-queue[3509]: gethostby*.getanswer: asked for "webserver IN AAAA", got type "A"
運氣好,我的意思是你的“RP”好,呵呵,查詢比較快,你感覺不到異樣,“RP”不好,少則一到兩分鐘,多則四到五分鐘,而且要命的是不報任何錯誤信息,這個時間大大超過了我們能忍受的“8s”時間了,心裡承受力差的兄弟就要受煎熬了。
知道了問題的症結,就可以對症下藥了,比如我們可以修改系統配置文件/etc/hosts 和/etc/resolv.conf
讓sendmial繞過查詢遠程主機,這裡給出一種最簡單的方法,給主機設置一個別名
修改/etc/hosts ,未修改之前
127.0.0.1 localhost.localdomain localhost
修改成
127.0.0.1 localhost.localdomain localhost webserver
再次重新啟動sendmail看看
[root@webserver ~]# service sendmail restart
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
啟動時間已經到秒級了。