Назад | Перейти на главную страницу

Сервер Ubuntu: запуск процессов во время загрузки

Как заставить серверы 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 со следующим синтаксисом:

  • S, чтобы запустить или K, чтобы остановить службу
  • Двухзначное число с порядком выполнения (чем меньше, тем раньше).
  • Название сценария

Если ваш сценарий 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 после запуска всех остальных процессов загрузки. Убедитесь, что ваш процесс отсоединяется, или добавьте & в конце каждой строки, иначе ваша загрузка зависнет!

Вышеупомянутые решения более надежны, это более быстрый и грязный способ.