Begin Note
我相信这是另一个服务器故障问题的类似问题,但不是重复的问题,因为退回的邮件是一个合法的电子邮件地址,我可以将当前退回的邮件保留在队列中。 那另一个服务器故障问题把我联系到一个答案,而不是在答案本身中提供它,这是我过去被标记的东西。
End Note
我的问题是如何清除locking的sendmail系统而无需重新启动。 这是一些背景:
我有一个Linux红帽企业WS 5服务器,专门用于传输和接收电表configuration和电表读取信息。 服务器使用sendmail发送less量到适量的电子邮件。
Linux h2oamr.Somewhereton1.local 2.6.18-348.el5 #1 SMP Wed Nov 28 21:22:00 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
一个月一次这个小shell脚本以root身份运行,而这个月,一些内容又回来了,显示了一条消息在队列中。
#!/bin/bash # # sendmail_alive.sh # Change History: # Charles M. Norton 12/13/2010 # Fix header, and add su -l -c to send as amr. /usr/bin/mailq -v > /tmp/mailq.txt su -l amr -c \ "mail -s 'sendmail status' [email protected] < /tmp/mailq.txt"
这是我的机器人送给我的:
/var/spool/mqueue (1 request) -----Q-ID----- --Size-- -Priority- ---Q-Time--- --------Sender/Recipient-------- r3E822QG016051* 1208 31671 Apr 14 04:02 <[email protected]> <[email protected]> Total requests: 1
我试图发送电子邮件到同一个收件人作为该邮件卡在队列中,它几乎立即得到了使用。 但是,原始卡住的消息仍然在发送邮件队列中。
然后,我尝试了这些命令:
sendmail -bm sendmail -OTimeout.hoststatus=0m -q -v
但不断得到一个locking的PID消息。 不幸的是,我没有保存locking的.pid消息。
重新启动清除了问题。
是否有可能在不重新启动的情况下清除队列,如果是这样,怎么办?
试着找出“为什么是locking的信息?”
你可以发布由ps报告的相关的sendmail进程状态吗? linux-debian版本:ps auxw | grep sendmail。 恕我直言,你应该尝试find哪些传递超时应该减less。
最可能的嫌疑人:Timeout.connect,Timeout.iconnect。