В чем разница между /etc/init/
и /etc/init.d/
?
В более общем смысле, что означает .d
суффикс для каталога?
В чем разница между /etc/init/
и /etc/init.d/
?
В более общем смысле, что означает .d
суффикс для каталога?
Ответы:
/etc/init.d
содержит сценарии, используемые средствами инициализации System V (SysVinit). Это традиционный пакет управления службами для Linux, содержащий init
программу (первый процесс, который запускается после завершения инициализации ядра), а также некоторую инфраструктуру для запуска и остановки служб и их настройки. В частности, файлы /etc/init.d
являются сценариями оболочки , которые отвечают start
, stop
, restart
и (если поддерживается) reload
команда для управления конкретной услуги. Эти сценарии могут быть вызваны напрямую или (чаще всего) через какой-либо другой триггер (обычно наличие символической ссылки в /etc/rc?.d/
).
/etc/init
содержит файлы конфигурации, используемые Upstart. Upstart - это молодой пакет управления сервисами, поддерживаемый Ubuntu. Файлы в /etc/init
конфигурационных файлах , рассказывающие Upstart , как и когда start
, stop
, reload
конфигурация, или запрос status
из службы. Что касается lucid, Ubuntu переходит от SysVinit к Upstart, что объясняет, почему многие сервисы поставляются со сценариями SysVinit, даже если файлы конфигурации Upstart предпочтительнее. Фактически сценарии SysVinit обрабатываются слоем совместимости в Upstart.
.d
в именах каталогов , как правило , указывает на каталог , содержащий много файлов конфигурации или сценарии для конкретной ситуации (например , /etc/apt/sources.list.d
содержит файлы, которые объединяются , чтобы сделать виртуальный sources.list
, /etc/network/if-up.d
содержит скрипты, которые выполняются , когда сеть я NTER е асе активирован). Эта структура обычно используется, когда каждая запись в каталоге предоставляется отдельным источником, так что каждый пакет может разместить свой собственный плагин, не анализируя один файл конфигурации для ссылки на себя. В этом случае просто так получается, что «init» является логическим именем для каталога, SysVinit был первым и использовался init.d
, а Upstart использовал обычныйinit
для каталога с аналогичной целью (это было бы более «основным» и, возможно, менее высокомерным, если бы они использовали /etc/upstart.d
вместо этого).
¹ не считая initrd
upstart
или sysvinit
. И в последних версиях это могло быть systemd
так же (чего не было в Ubuntu, когда я писал свой ответ). Это зависит от того, какой пакет предоставляет /sbin/init
( dpkg -S /sbin/init
).
upstart
пакет, который предоставляет / sbin / init (run dpkg -S /sbin/init
). Но Bitnami разместил свой скрипт в каталоге /etc/init.d. Разве это не противоречит твоему ответу на @AsheeshR выше? Спасибо.
«.D» обычно добавляется к имени каталога, чтобы указать, что то, что раньше (или что могло быть обработано) одним сценарием или одним файлом конфигурации, было разделено на несколько файлов для удобства, но которое должны быть включены или выполнены вместе.
Например, /etc/apache/conf.d/
или/etc/apt/sources.d/
В тех случаях, когда важно, в каком порядке они должны быть включены / выполнены, файлы в этих каталогах иногда начинаются с цифры, например «00-default» или «80-user», чтобы они выполнялись в правильном порядке.
В этом случае /etc/init.d/
это указывает на то, что все скрипты в init.d должны быть выполнены. В настоящее время, однако, система инициализации современных операционных систем немного более сложна, но имя каталога все еще там.
.d
означает, что он связан с процессом «deamon», который обычно запускается во время загрузки.
Как вы указываете, номенклатура «.d» озадачивает и странна, и на самом деле ей нет места в любой современной системе - вы заметите, что большинство современных сервисов склонны ее отбрасывать.
Причина, по которой каталог существует, /etc/init
а не в /etc/upstart
том, что Upstart - это имя проекта, фактический установленный двоичный файл все еще остается, /sbin/init
поэтому для его конфигурации не имеет смысла иметь имя, которое не соответствует двоичному файлу.
rules.d
, Xorg относительно недавно xorg.conf.d
, не слишком старый и /etc/profile.d
т. Д.
.d
каталоги вошли в Систему V. Тогда это была загадочная нотация, и в конечном итоге, вероятно, идея одного человека вошла в кодовую базу и не могла уйти. Например, если вы считаете, чтоcat
это плохое имя для выполняемой задачи, представьте, сколько файлов в системе вам нужно было бы коснуться, чтобы изменить ее.