sysvinit сценарий запуска postfix - вызывается только с аргументом «status»

671
Klaus

У меня проблема с постфиксом не запускается при загрузке. 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 никогда не запускается при запуске.

0

1 ответ на вопрос

0
Klaus

Проблема заключалась в том, что пользовательский сценарий инициализации выполнялся до сценария инициализации 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

Похожие вопросы