Надежный способ проверить, работает ли PostFix:
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
совсем не надежен для проверки, если запущен PostFix.
Похоже, причина, почему / var / packages / mailserver / target / sbin / postfix Status
не выводится ничего полезного, потому что Postfix
использует внутренний PostLog
Двоичный для вывода. Соответствующий код можно найти в сценарии Bash / var / packages / mailserver / target / libexec / postfix-script
:
LOGGER="$command_directory/postlog -t $MAIL_LOGTAG/postfix-script"
INFO="$LOGGER -p info"
Проверка на выходе из из Postfix Статус
работает нормально с другой. 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
устанавливается вызовом Postfix
BINARY. На мою системе он разрешается / var / packages / mailserver / target / libexec /
.
Да, я использую Terminal Emulator for Android. Это хорошо работает для меня, и поставляется предустановленным в Cyanogenmod. Мне особенно нравится объединять его с WiFi клавиатурой, так что я могу использовать настоящую клавиатуру. Оба они с открытым исходным кодом, хотя я предоставил ссылки на Google Play. По умолчанию вы попадаете в sh
, но у меня тоже установлена bash
.
Что касается аннулирования гарантии, вам придется проверить гарантию конкретного производителя.