Назад | Перейти на главную страницу

Что нужно сделать для очистки очереди sendmail без перезагрузки?

                    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.