Я бегу Ubuntu , где у меня есть каталоги /etc/rc0.d
, /etc/rc1.d
, /etc/rc2.d
, ..., /etc/rc6.d
.
Примеры файлов с моей машины:
directory example symlinks in the dir
------------------------------------------
/etc/rc1.d: K76dovecot, K77ntp
/etc/rc2.d: S23ntp, S24dovecot
/etc/rc3.d: S23ntp, S24dovecot
/etc/rc4.d: S23ntp, S24dovecot
/etc/rc5.d: S23ntp, S24dovecot
Вопросов:
- Какова цель нескольких каталогов "rc"?
- Почему Ubuntu установил дубликаты
dovecot
иntp
во все каталоги, кромеrc0.d
иrc6.d
? - Если они указаны несколько раз, как указано выше, выполняются ли они несколько раз?
- Можете ли вы из вышесказанного сказать в каком порядке
dovecot
иntp
будете запускаться при запуске? - Как правильно указать Ubuntu всегда запускаться
ntp
передdovecot
запуском?
services
init-script
init.d
roger.james
источник
источник
Как уже отмечали другие, ответ заключается в уровнях запуска, которые в основном представляют собой режимы работы операционной системы. В Linux это обычно:
Таким образом, каждый из
rcN
каталогов содержит символические ссылки на сценарии, которые должны выполняться на этом уровне выполнения. Все реальные скрипты обычно находятся в/etc/init.d
каталоге:Наименование символической ссылки
Символическая ссылка, чье имя начинается с символа,
S
будет запущена на соответствующем уровне выполнения, а те, чье имя начинается с,K
будут уничтожены. Обратите внимание, что все ссылкиrc6.d
, уровень запуска перезагрузки, начинаются сK
. Это потому, что все они должны быть остановлены для перезагрузки и ничего не должно быть запущено.Числа после начальной буквы относятся к порядку выполнения связанных скриптов. Те, у кого меньшие цифры, будут запускаться раньше тех, у кого более высокие цифры. Таким образом, в вашем конкретном примере,
S23ntp
будет запущен (запущен в этом случае) раньшеS24dovecot
.источник
S01bluetooth
иS01rsync
, будет ли порядок произвольным?S01
сравнения будетb
<r
, вы поняли. Может быть!/etc/init.d/rc
говоритfor s in /etc/rc$runlevel/S*; do …
, так что он просто идет в порядке расширения глобуса; то есть, числовой / буквенный. Длинный ответ заключается в том, что код там намного сложнее, чем я помню. Я постараюсь потратить некоторое серьезное время на изучение этого в течение следующих шести-восьми недель. На первый взгляд кажется, что он извлекает число послеS
и делает с ним что-то, поэтомуS42beeblebrox
иS42zaphod
может быть более тесно связан, чем, скажем,S43arthur
иS44dent
.1) Несколько каталогов rcX.d указывают, какие службы запускать или останавливать во время уровня запуска «X».
2) rc0.d для уровня запуска 0, который выключен. rc6.d для перезагрузки. Остальные все для разных уровней выполнения (2 - 5). S обозначает начало, а K - убийство. По сути, это ссылки на оригинальные скрипты в /etc/rc.d. Числа после S / K являются приоритетом, по которому службы будут запущены / убиты.
3) Да, если они указаны несколько раз, скрипт запуска / уничтожения будет запускаться несколько раз. Но никто не хочет этого делать.
4) Если посмотреть на номера приоритетов, сначала запустится служба ntp, а затем dovecot.
5) 4-й пункт - это путь.
источник