10

Я использую Ubuntu 12.04 LTS, и эта система в основном использует новые задачи. К сожалению, моя система также зависит от скомпилированного вручную сервера dbmail , у которого есть только сценарий инициализации, но нет сценария выгрузки.

Используя значения по умолчанию для update-rc.d dbmail defaults я установил dbmail для всех уровней запуска, но, к сожалению, он запускается до запуска MySQL, поэтому демон снова умирает. Я также попытался переместить его на S90 или что-то подобное, но MySQL все еще недоступен при запуске скрипта.

Я попытался добавить зависимость в заголовок LSB скрипта следующим образом:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          dbmail
# Required-Start:    $local_fs $remote_fs $syslog $network mysql
# Required-Stop:     $local_fs $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start dbmail services
# Description:       Run network services provided by dbmail such as
#                    imap-server, pop3-server, lmtp-server, timsieve-server
### END INIT INFO

К сожалению, скрипт все еще запускается раньше, чем MySQL. Я привык к старомодным сценариям инициализации, а не для запуска заданий, поэтому я немного запутался здесь. Как добавить зависимость или как запустить задание mysql до сценария инициализации dbmail ?

Как проверить / увидеть порядок запуска для заданий + сценарии инициализации во время загрузки? Есть ли инструмент для этого?

Запуск скрипта вручную из оболочки после запуска работает нормально, так как MySQL уже работает.

1 ответ1

12

Я думаю, что если вы запустите /etc/init.d/dbmail start с /etc/rc.local , он запустится после всех ваших заданий upstart / других сценариев инициализации.

Тем не менее, я бы, вероятно, исправил бы это, добавив новое задание upstart по адресу /etc/init/dbmail.conf . Обычно в скриптах init.d есть много кода для проверки статуса и т.д., Который вам подойдет. Это может быть так просто, как:

start on started mysql
exec /usr/local/bin/dbmail

Или, возможно, вы можете использовать существующий скрипт инициализации следующим образом:

start on started mysql
pre-start script
  /etc/init.d/dbmail start
end script
post-stop script
  /etc/init.d/dbmail stop
end script

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