Begin Note
Я считаю, что это похожий, но не повторяющийся вопрос к другому вопрос о неисправности сервера, потому что возвращенное сообщение отправлено на законный адрес электронной почты, на который я могу отправить в настоящее время, когда возвращенное сообщение остается в очереди. Этот другой вопрос о сбое сервера связывает меня с ответом, а не предоставляет его в самом ответе, за что я был отмечен в прошлом.
End Note
У меня вопрос, как очистить заблокированную систему sendmail без перезагрузки. Вот некоторая предыстория:
У меня есть сервер Linux Red Hat Enterprise WS 5, который предназначен исключительно для передачи и получения конфигурации счетчика, а счетчик считывает информацию. Сервер отправляет небольшое или умеренное количество электронной почты с помощью sendmail.
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
Один раз в месяц этот небольшой сценарий оболочки запускается от имени пользователя 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' dbadmin@town.somewhereton.ma.us < /tmp/mailq.txt"
Вот что прислал мне мой бот:
/var/spool/mqueue (1 request)
-----Q-ID----- --Size-- -Priority- ---Q-Time--- --------Sender/Recipient--------
r3E822QG016051* 1208 31671 Apr 14 04:02 <root@h2oamr.Somethington.local>
<dbadmin@town.somethington.ma.us>
Total requests: 1
Я попытался отправить электронное письмо тому же получателю, что и это письмо, застрявшее в очереди, и оно стало использоваться почти сразу. Однако исходное зависшее сообщение осталось в очереди sendmail.
Затем я попробовал эти команды:
sendmail -bm
sendmail -OTimeout.hoststatus=0m -q -v
но продолжал получать заблокированное сообщение pid. К сожалению, я не сохранил заблокированное сообщение .pid.
Перезагрузка устранила проблему.
Можно ли очистить очередь без перезагрузки, и если да, то как?
Попробуйте узнать "почему сообщение заблокировано?"
Не могли бы вы опубликовать соответствующее состояние процесса sendmail, о котором сообщает ps? Версия для linux-debian: ps auxw | grep sendmail. IMHO вы должны попытаться определить, какой тайм-аут доставки следует уменьшить.
Наиболее вероятные подозреваемые: Timeout.connect, Timeout.iconnect.