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

Я ищу надежный способ проверить, работает ли 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?

  • Чтение локальной электронной почты в Thunderbird без постфикса
  • Невозможно отправить почту на microsoft (hotmail, live ...)
  • SMTP Auth - SASL на Dovecot, Postfix и CentOS 6.2 (и Open-Xchange)
  • Как изменить порт связи между постфиксными и другими серверами?
  • Команда Helo отклонена: требуется полное имя хоста
  • Postfix: запретить пользователям изменять реальный адрес электронной почты
  • Postfix, SMTP-сервер, PHPMailer
  • postfix для проверки всех получателей
  • 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

    Удаление файлов с пробелами в именах

    Как удалить спецификацию из файла UTF-8?

    Объединение / usr / bin и / usr / sbin в / bin (GNU / Linux)

    Почему полный путь к / usr / bin / time влияет на вывод?

    Возможно ли открыть TCP-туннель в Linux в качестве специального символьного устройства?

    сторожевой таймер и системный сторожевой таймер

    Более сжатые методы для обертывания файла, чем использование sed

    Как изменить значок типа файла в XFCE (Thunar)?

    Конфигурация Grub для отдельных корневых и загрузочных разделов

    могу ли я использовать логические операторы для удаления всех файлов, которые соответствуют одному и / или другому шаблону в одной строке?

    Как получить две команды?

    Как установить расширение php-solr на Centos 6.6

    Не удается отразить цветной текст при вставке в строку состояния в dwm

    , как аргумент командной строки для команды, выполняющейся в фоновом режиме

    AH00534: httpd: Ошибка конфигурации: нет загрузки MPM

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