Как заставить серверы Ubuntu запускать службы во время загрузки в определенном порядке?
Я немного читал о Upstart
, init.d
и inittab
, и я не уверен, как правильно это сделать.
Спасибо,
Уди
Загляните в команду update-rc.d
, который является стандартным способом Debian / Ubuntu для настройки запуска и остановки служб. Файл /etc/init.d/skeleton
также довольно хороший шаблон для быстрого и правильного создания собственных сервисов.
Помимо выскочки (о которой я мало что знаю), порядок определяется числом в каталоге rcX.d (где X - уровень выполнения).
Обычно в Ubuntu нормальное использование - это уровень запуска 2. Вы помещаете свой скрипт в /etc/init.d/
и сделайте символическую ссылку на /etc/rcX.d
со следующим синтаксисом:
Если ваш сценарий number42
сделай это:
$ sudo cp number42 /etc/init.d
$ sudo ln -s /etc/init.d/number42 /etc/rc2.d/S99number42
Остановить его будет так же, но с K и на уровне выполнения 0 и 6.
sysv-rc-conf может помочь вам визуализировать, какие сценарии запускаются на каком уровне выполнения.
sysv-rc-conf http://ubuntu-tweak.com/wp-content/uploads/2007/09/sysv-rc-conf.png
Вы упоминаете в определенном порядке, но если вы имеете в виду, что у вас несколько процессов, и вам нужно, чтобы они выполнялись в определенном порядке, но после все остальные процессы загрузки уже запущены, вы можете выбрать простой выход и использовать /etc/rc.local.
Просто поместите все свои команды в этот файл в указанном вами порядке, он будет выполнен / bin / sh после запуска всех остальных процессов загрузки. Убедитесь, что ваш процесс отсоединяется, или добавьте & в конце каждой строки, иначе ваша загрузка зависнет!
Вышеупомянутые решения более надежны, это более быстрый и грязный способ.