什么是步骤来清除sendmail队列而无需重新启动?

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。