Проверьте, работает ли постфикс

Я ищу надежный способ проверить, работает ли postfix из сценария bash.

Моя первая попытка – просто попробовать pidof postfix , который не работает.

Затем я попытался получить postfix status :

 POSTFIX_LOCATION=/var/packages/MailServer/target/sbin/postfix # location of postfix result=`$POSTFIX_LOCATION status` if [ -z $result ]; then echo "Error: No status output from postfix" elif [[ "$result" == *"is running"* ]]; then echo "postfix is running!" else echo "postfix is not running!" fi 

Но даже если статус сообщается на консоль, переменная result остается пустой. Это консольный вывод:

 postfix/postfix-script: the Postfix mail system is running: PID: 11996 Error: No status output from postfix 

Наконец, я нашел способ проверить, работает ли постфикс, получив имя процесса PID: 11996 , который является «мастером». Так работает следующее:

 pidof master 

Но это не очень многословно, и я не уверен, что это надежный способ проверить, работает ли postfix .

Поэтому мои вопросы:

  • Как я могу получить вывод postfix status из сценария bash? – Что-нибудь я там делаю неправильно?
  • Есть ли более надежный способ проверить, работает ли postfix из сценария bash?

  • Многопоточность на почтовом сервере (Postfix)
  • Добавить предупреждение о сообщениях, полученных Postfix без TLS
  • несколько клиентов, получающих доступ к одной учетной записи электронной почты через IMAP
  • Постфикс останавливается непрерывно
  • Служить почтой для нескольких доменов на одном сервере?
  • Блокировать локальных (unix) пользователей от отправки почты
  • Postfix / devcot MailServer - не получает письма
  • postfix: формат имени файла для сообщений Maildir
  • 3 Solutions collect form web for “Проверьте, работает ли постфикс”

    Debian или Ubuntu

     sudo service postfix status 

    Надежный способ проверить, работает ли постфикс:

     if /var/packages/MailServer/target/sbin/postfix status; then echo "postfix is running!" else echo "postfix is not running!" fi 

    Альтернатива, которая по существу делает то же самое:

     if /var/packages/MailServer/target/libexec/master -t 2>/dev/null; then echo "postfix is not running!" else echo "postfix is running!" fi 

    аргументация

    Проведя еще несколько исследований, выяснилось, что тестирование для ps | grep [p]ostfix ps | grep [p]ostfix вообще не является надежным, чтобы проверить, работает ли постфикс.

    Похоже, причина, почему /var/packages/MailServer/target/sbin/postfix status не выводит ничего полезного, потому что postfix использует внутренний postlog файл postlog для вывода. Соответствующий код можно найти в сценарии bash /var/packages/MailServer/target/libexec/postfix-script :

     LOGGER="$command_directory/postlog -t $MAIL_LOGTAG/postfix-script" INFO="$LOGGER -p info" 

    С другой стороны, проверка кода выхода из postfix status работает нормально. postfix-script фактически вызывается за кулисами по двоичным сообщениям postfix и не может быть вызван напрямую. Но, к счастью, сценарий также включает в себя код для проверки, работает ли postfix :

     status) $daemon_directory/master -t 2>/dev/null && { $INFO the Postfix mail system is not running exit 1 } $INFO the Postfix mail system is running: PID: `sed 1q pid/master.pid` exit 0 ;; 

    Переменная $daemon_directory устанавливается $daemon_directory вызывающего postfix . В моей системе он разрешает /var/packages/MailServer/target/libexec/ .

    Чтобы проверить, работает ли Postfix, нет:

     sudo /etc/init.d/postfix status 

    Чтобы запустить Postfix:

     sudo /etc/init.d/postfix start 

    Чтобы остановить постфикс:

     sudo /etc/init.d/postfix stop 

    Надеюсь, это поможет.

    Interesting Posts

    Uuencode отображает содержимое файла в элементе электронной почты вместо прикрепления файла в вложениях

    sed не распознает числа при передаче в качестве переменных

    Создать новую ассоциацию типов файлов

    Настройка Apache для запроса сертификата клиента

    Найдите не точное соответствие и возвращаемый столбец 1 этого файла

    Невозможно получить работу NAT через цепочку iptables PREROUTING

    Hamachi не может установить / запустить на сервере debian 8

    Создание первой резервной копии

    Сортировка jpg в соответствии с датой создания и конвертирование в одиночный pdf

    Как xdg-open выполняет свою работу

    Возможно ли подключение Wi-Fi и Ethernet к одной сети?

    Chromium забывает пароль, хранящийся в kwallet после обновления

    Могут ли загрузочные загрузчики получить доступ ко всем разделам?

    Фильтрация результата команды find, так что она возвращает только каталоги

    php indent в веб-режиме с Emacs

    Linux и Unix - лучшая ОС в мире.