/etc/rc.d vs /etc/init.d


15

/etc/init.dКаталог ubuntu в точности (функционально) эквивалентен тому, что я предполагаю, чтобы быть более стандартным /etc/rc.d/(по крайней мере, для arch)? Есть ли какая-то особая причина, по которой канонически использовался init.d вместо rc.d для сценариев запуска?


1
на самом деле arch linux - единственный дистрибутив, который использует, /etc/rc.dкоторый я видел ... Я подозреваю, что он может быть использован в BSD.
— ксенотеррацид

1
это используется в freebsd
— wlraider70

Ответы:


16

Ubuntu использует /etc/init.dдля хранения скриптов SysVinit, потому что Ubuntu основан на Debian, и именно это использует Debian. Red Hat использует /etc/rc.d/init.d. Я забыл, что использует Slackware. Там просто нет стандартного местоположения.

Ubuntu находится в процессе переключения с SysVinit на Upstart , который использует файлы конфигурации в /etc/init.


2
Извините, но /etc/init.d является стандартом, как часть стандарта SVR4, скопированного стартовыми скриптами Linux.
— Rich Homolka

Сайт Upstart утверждает, что Ubuntu использует его с версии 6.10
— badp

@badp: Хотя 6.10, все еще использовал сценарии инициализации в стиле SysV в /etc/init.d. Переход /etc/init/*.confначался позже (8.04 все еще был в стиле SysV, 10.04 уже переходил).
— Жиль "ТАК - перестань быть злым"

2
Ubuntu переключился с Upstart на systemd с 15.04.
— PetroCliff

7

/etc/init.d был старым историческим местом для SVR4. Я забыл, почему redhat добавил уровень /etc/rc.d/. Я думаю изолировать вещи на rc.d, но тогда нужно было добавить кучу символических ссылок для обратной совместимости. Так что в redhat есть /etc/init.d, просто символические ссылки в другом месте.

Поэтому стандартным местоположением является /etc/init.d, хотя это может быть символическая ссылка, а не настоящий каталог.

Были некоторые действительно старые дистрибутивы Linux, которые копировали BSD с /etc/rc.local, но почти никто не использует это больше.



5

Исторически /etc/rc.dдерево каталогов обозначает систему Init, которая следует традиции BSD 4.4 инициализации системы, которую обычно называют системой rcinit. Все современные системы (Free / Open / Net) BSD и Slackware Linux следуют этой традиции.

/etc/init.dДерево каталогов обозначает систему инициализации System V (SysV) , который следует за AT & T UNIX, SunOS, Solaris традиции инициализации системы. Обычно это называется системой SysV Init. Собственно Debian продолжает эту традицию в серии Wheezy, но планирует использовать SystemD в серии Jessie. Исторически RedHat и его производные использовали SysV Init, но больше этого не делают.

Кроме того, со временем особенности обеих схем инициализации были приняты дистрибутивами.


И затем есть AIX с "/etc/rc.d/init.d/". Немного столбца A и немного столбца B.
— DarkHeart

0

На самом деле, по крайней мере, в CentOS 6,8 Сантьяго, /etc/init.dэто просто ссылка на /etc/rc.d.


Это именно то, что я имел в виду, хаха. Извините за неправильное написание, я отредактировал свой ответ сейчас.
— Chromechris

Почему люди понижают голос без объяснения причин? Утверждение, если оно намеренно не имеет значения, все еще может иметь значение или значение для начинающего читателя. Объясните, когда вы отрицаете. Я +1, чтобы отменить эффект -1
— Асад Икбал

0

В PuppyLinux есть и /etc/rc.d, и /etc/init.d , которые не являются символической ссылкой. Символьная ссылка - /etc/rc.d/init.d , которая связывает уровень с /etc/init.d (я смотрю на щенка на основе Slackware - есть также на основе Ubuntu и других разновидностей) .) В каждом файле README.txt объясняется их подход.


0

Итак, /etc/init.dэто место, где вы можете быстро развернуть скрипт инициализации. Второй шаг к активации этого скрипта - запустить на нем chkconfigкоманду. Скажем, вы запускаете chkconfig --add <yourscript>, символические ссылки будут созданы между /etc/init.d/<yourscript>и/etc/rc.d/rcX.d/S50<script>например. X в rcX.d представляет номер уровня выполнения сценария, а S50 представляет тип сценария (существует два из этих типов: S & K, S указывает системе запустить сценарий при загрузке, а K указывает системе: после завершения работы корректно выйдите из сценария. Число после S / K представляет порядок, в котором это происходит, если у вас есть несколько сценариев, которые зависят от того, будут ли другие активны в первую очередь). По умолчанию, если в сценарии не указан уровень запуска или когда вы вводите команду уровня запуска, CentOS6 создает сценарии S50 для уровней запуска 2,3,4,5 и K50 для уровней выполнения 0,1,6.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.