/etc/init.d
Каталог ubuntu в точности (функционально) эквивалентен тому, что я предполагаю, чтобы быть более стандартным /etc/rc.d/
(по крайней мере, для arch)? Есть ли какая-то особая причина, по которой канонически использовался init.d вместо rc.d для сценариев запуска?
ubuntu
init-script
Falmarri
источник
источник
/etc/rc.d
который я видел ... Я подозреваю, что он может быть использован в BSD.Ответы:
Ubuntu использует
/etc/init.d
для хранения скриптов SysVinit, потому что Ubuntu основан на Debian, и именно это использует Debian. Red Hat использует/etc/rc.d/init.d
. Я забыл, что использует Slackware. Там просто нет стандартного местоположения.Ubuntu находится в процессе переключения с SysVinit на Upstart , который использует файлы конфигурации в
/etc/init
.источник
/etc/init.d
. Переход/etc/init/*.conf
начался позже (8.04 все еще был в стиле SysV, 10.04 уже переходил)./etc/init.d был старым историческим местом для SVR4. Я забыл, почему redhat добавил уровень /etc/rc.d/. Я думаю изолировать вещи на rc.d, но тогда нужно было добавить кучу символических ссылок для обратной совместимости. Так что в redhat есть /etc/init.d, просто символические ссылки в другом месте.
Поэтому стандартным местоположением является /etc/init.d, хотя это может быть символическая ссылка, а не настоящий каталог.
Были некоторые действительно старые дистрибутивы Linux, которые копировали BSD с /etc/rc.local, но почти никто не использует это больше.
источник
Slackware по- прежнему использует
/etc/rc.d
FreeBSD использует
/etc/rc.d
и/usr/local/etc/rc.d
источник
Исторически
/etc/rc.d
дерево каталогов обозначает систему Init, которая следует традиции BSD 4.4 инициализации системы, которую обычно называют системойrc
init. Все современные системы (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, но больше этого не делают.Кроме того, со временем особенности обеих схем инициализации были приняты дистрибутивами.
источник
На самом деле, по крайней мере, в CentOS 6,8 Сантьяго,
/etc/init.d
это просто ссылка на/etc/rc.d
.источник
В PuppyLinux есть и /etc/rc.d, и /etc/init.d , которые не являются символической ссылкой. Символьная ссылка - /etc/rc.d/init.d , которая связывает уровень с /etc/init.d (я смотрю на щенка на основе Slackware - есть также на основе Ubuntu и других разновидностей) .) В каждом файле README.txt объясняется их подход.
источник
Итак,
/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.источник