Другой типичный способ запуска чего-либо при загрузке на многих платформах * nix - это (или я думаю, что это может начать терять предпочтение - см. Альтернативы ) помещение сценариев в каталог, который, в зависимости от конкретной ОС / дистрибутива, может быть что - то вроде /etc/rc2.d
, /etc/rc3.d
, /etc/rc/rc3.d
и т.п. (различные дистрибутивы используют различные «уровни выполнения», который , когда число приходит из - см ссылку ниже). Зачастую они также связаны между собой файлами или файлами /etc/init.d
, для более легкого выполнения вручную, и принимают аргументы «start» и / или «stop» на большинстве * nix-платформ, а также «status», «restart», и т.д. на многих платформах Linux. В таких системах, как правило , они выполняются init
,inittab
, В системах * BSD существует другой стиль схожей концепции , и, как указано выше, существует множество вариантов.
В указанном выше стиле сценарии, например, /etc/rc2.d
(для системы с уровнем запуска по умолчанию 2) обычно начинаются либо с буквы, S
либо K
с двухзначного числа. Сценарии, которые начинаются с S, запускаются в лексикографическом порядке (что обычно переводит в числовой порядок) при загрузке до уровня 2 с аргументом «start». При завершении работы сценарии с префиксом K запускаются аналогичным образом с аргументом «stop».
Файлы в /etc/init.d
(или иногда /etc/rc/init.d
, или в других вариациях) именуются без префиксов S и K или числовых чисел. Как правило, файлы в различных каталогах /etc/rc?.d имеют символическую ссылку на реальные файлы, на которые часто ссылается префикс относительного пути ../init.d/
.
В разных системах существуют различные утилиты для управления ими, включения и выключения и т. Д. В IRIX (по крайней мере, с IRIX 4, если мне не изменяет память), это был инструмент под названием chkconfig
, который не манипулирует ссылки, но которые будут проверены сценариями, чтобы увидеть, должны ли они работать или нет. Я думаю, что IRIX была первой ОС, у которой было что-то подобное. Позже, в какой-то версии RedHat, которая у меня была, был инструмент с тем же именем, но он вел себя немного по-другому, фактически управляя символическими ссылками - посмотрите, chkconfig(8)
что я думаю, вероятно, та же (или очень похожая) версия как я использовал тогда.
В системе Ubuntu 9.04, к которой у меня есть доступ, похоже, update-rc.d
это скрипт для запуска.
Если вы работаете в системе, использующей inittab, вы также можете добавлять вещи прямо туда - что может быть особенно полезно для вещей, которые вы хотите запускать не только один раз при загрузке, но и активно контролировать ( init
), respawn
если они когда-либо сбой или прекращение. Смотрите вывод man inittab
(если он есть) в вашей системе для получения дополнительной информации. И / или man init
, и т. Д. Есть много разных вкусов, и я (в настоящее время) не очень хорошо знаком с Debian или Ubuntu, поэтому я не уверен, на что именно вам указать, но, надеюсь, это даст вам некоторые отправные точки ,
раздел @reboot в crontob является новым для меня, но также кажется, что это может быть полезным вариантом - хотя я бы посоветовал сценарии инициализации как предпочтительные для многих вещей. Но посмотрите man 5 crontab
для получения дополнительной информации о том, что вы можете поместить в конфигурацию cron, и как можно сказать, что нужно запускать, и когда (в том числе, предполагая версию cron для Vixie / ISC [см. Cron history ] с помощью @reboot
).
Я надеюсь, что это полезно.