Я использую Ubuntu 12.04 LTS, и эта система использует в основном upstart-задания. К сожалению, моя система также зависит от скомпилированного вручную сервера 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 уже работает.
источник
Ответы:
Я думаю , если вы бежите
/etc/init.d/dbmail start
из/etc/rc.local
, он будет запускаться после всех заданий выскочки / других скриптов.Тем не менее, я бы, вероятно, исправил бы это, добавив новую выскочку в
/etc/init/dbmail.conf
. Обычно в скриптах init.d есть много кода для проверки статуса и т. Д., Который вам подойдет. Это может быть так просто, как:Или, возможно, вы можете использовать существующий скрипт инициализации следующим образом:
источник