Я думаю, что прочитал что-то об этом некоторое время назад, но я не могу вспомнить, как это было сделано. По сути, у меня есть служба, в /etc/init.d
которой я хотел бы запускаться автоматически во время загрузки. Я помню, что это как-то связано с символической ссылкой скрипта в /etc/rc.d
каталог, но я не могу вспомнить в настоящее время. Какая команда для этого?
Я считаю, что я нахожусь на производной Fedora / CentOS.
fedora
boot
init-script
Нафтули Кей
источник
источник
/etc/init
,/etc/init.d
,/etc/rc.d
,/etc/rc.local
и несколько больше у него есть?Ответы:
Если вы работаете в системе на базе Red Hat, как вы упомянули, вы можете сделать следующее:
/etc/init.d
(например/etc/init.d/myscript
). Скрипт должен иметь следующий формат:Формат довольно стандартный, и вы можете просматривать существующие сценарии в
/etc/init.d
. Затем вы можете использовать скрипт, как так/etc/init.d/myscript start
илиchkconfig myscript start
. Страницаckconfig
man объясняет заголовок скрипта:В примере кода start, stop и status используются вспомогательные функции, определенные в
/etc/init.d/functions
Включить скрипт
Убедитесь, что скрипт действительно включен - вы должны увидеть «вкл» для выбранных вами уровней.
источник
Вы проверяете, на каком уровне запуска обычно работает ваша машина.
Часто это 5 или 2 - существуют различные соглашения, но на самом деле ничего не установлено. Ubuntu использует 2, тогда как предыдущий дистрибутив, который я использовал, всегда использовал
Тогда вы сделаете символическую ссылку из вашего инициализации-скрипт, может быть
/etc/init.d/foobar
в/etc/rc2.d/SXYfoobar
S означает «Запустить этот скрипт на этом уровне выполнения (здесь: 2). XY - это двузначное десятичное число, соответствующее последовательности, сценарии запускаются.
Если вы зависите от сценария S45barfoo, который будет запускаться до вас, а S55foofoo зависит от вашего сценария, вы должны выбрать xy между 45 и 55. Для равных чисел порядок загрузки не определен.
Ubuntu тем временем переключился (переключается) на другую процедуру запуска, которая называется
upstart
.И обратите внимание: не всегда ссылки на ссылки
/etc/rcX.d
- иногда это/etc/init/rcX.d
или что-то подобное, но это должно быть легко найти где-то ниже / etc.Если вы хотите запустить что-то в конце стартовых скриптов,
/etc/rc.local
это будет файл для поиска, но если это зависит от того, что X11 уже запущен, вы можете поискать опцию автозапуска в вашей среде рабочего стола или/etc/X11/Xsession.d/
с аналогичным шаблоном, как описано выше.Если вы зависите от работающей сети, существует отдельный каталог (if-up.d) и для подключенных устройств, таких как внешние USB-накопители
/etc/udev/rules.d/
.источник
update-rc.d
?Как Нафтули Цви Кей спросил о Debian выше: Начиная с Debian 6, ваш скрипт должен содержать заголовок LSB (База стандартов Linux), который указывает его зависимости и возможности ( см. Вики-страницу debian ).
Если присутствует заголовок LSB, вы можете использовать его
insserv
для включения скрипта в процесс загрузки ( см. Другую вики-страницу Debian ).источник