sysvinit сценарий запуска postfix - вызывается только с аргументом "status"
У меня проблема с постфиксом не запускается при загрузке. 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 ответ
Проблема заключалась в том, что пользовательский сценарий инициализации выполнялся до сценария инициализации 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