У меня проблема с постфиксом не запускается при загрузке. boot.log не показывает никакой информации вообще. Запуск службы postfix впоследствии работает как положено.

Я добавил отладочную информацию в скрипт запуска. Были добавлены следующие строки:

exec >> /var/log/postfix-init.log 2>&1
set -x +v
echo SERVICE START INITIATED AT: `date +"%Y-%m-%d_%H:%M:%S"`
echo $@

Это дало мне информацию, что скрипт никогда не вызывался с аргументом "start". Он вызывается только дважды при запуске с аргументом "status", поэтому никогда не запускает службу.

Моя система следующая:

root@...:/#lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise

Как я уже говорил, запуск службы с service postfix start или запуск постфикса invoke-rc.d postfix start работает, но мне нужен постфикс для запуска во время загрузки.

Уровни запуска были добавлены с update-rc.d postfix defaults:

# ls /etc/rc*.d/*postfix
/etc/rc0.d/K20postfix  /etc/rc2.d/S20postfix  /etc/rc4.d/S20postfix  /etc/rc6.d/K20postfix
/etc/rc1.d/K20postfix  /etc/rc3.d/S20postfix  /etc/rc5.d/S20postfix

Также я попытался удалить (update-rc.d -f postfix remove) и добавить его. Мне действительно любопытно, почему служба не вызывается с аргументом "start" при запуске. Я предполагаю, что это проблема здесь, но понятия не имею, как ее решить.

Любая помощь будет принята с благодарностью! Я уже потратил впустую часы на это.

РЕДАКТИРОВАТЬ: я также добавил ps -faxu к своим сообщениям отладки и обнаружил, что статус вызывается из resolvconf. Так что проблема на самом деле в том, что сценарий инициализации postfix никогда не запускается при запуске.

1 ответ1

0

Проблема заключалась в том, что пользовательский сценарий инициализации выполнялся до сценария инициализации postfix, который никогда не завершался.

Еще лучше отладочные строки, которые дали мне больше понимания того, что происходит:

# remember to set shebang to bin/bash
exec > >(tee -a /var/log/postfix-init.log)
exec 2>&1
set -x +v
echo
echo SERVICE CMD INITIATED AT: `date +"%Y-%m-%d_%H:%M:%S"`
echo $@
ps faxu

Но в конечном итоге я понял, что после нестандартного скрипта не запускались другие скрипты, как указано в boot.log

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .