В чем разница между /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это плохое имя для выполняемой задачи, представьте, сколько файлов в системе вам нужно было бы коснуться, чтобы изменить ее.