В чем разница между /etc /init /и /etc/init.d/?

В чем разница между /etc/init/ и /etc/init.d/?

В общем, какой смысл суффикс .d переносит в каталог?

215 голосов | спросил Olivier Lalonde 2 +04002010-10-02T02:59:18+04:00312010bEurope/MoscowSat, 02 Oct 2010 02:59:18 +0400 2010, 02:59:18

3 ответа


216

/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 содержит сценарии, которые выполняются, когда сеть i nter f активирован). Эта структура обычно используется, когда каждая запись в каталоге предоставляется другим источником, так что каждый пакет может делить свой собственный плагин без необходимости синтаксического анализа одного файла конфигурации для ссылки на себя. В этом случае просто бывает, что «имя» является логическим именем для каталога, SysVinit пришел первым и использовал init.d, а Upstart использовал обычный init для каталог с аналогичной целью (это было бы больше «mainstream» и, возможно, менее высокомерным, если бы они использовали /etc/upstart.d).

¹¹ не считая initrd

ответил Gilles 2 +04002010-10-02T03:28:10+04:00312010bEurope/MoscowSat, 02 Oct 2010 03:28:10 +0400 2010, 03:28:10
26

«.d» обычно добавляется к имени каталога, чтобы указать, что то, что раньше (или то, что могло быть) обработано одним сценарием или одним конфигурационным файлом, было разбито на несколько файлов для удобства , но которые должны быть включены или выполняться вместе.

Например, /etc/apache/conf.d/ или /etc/apt/sources.d/

В случаях, когда важно, какой порядок они должны быть включены /выполнены, файлы в этих каталогах иногда начинаются с числа, такого как «00-default» или «80-user», чтобы они выполнялись в правильном порядке.

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

ответил thomasrutter 10 Mayam13 2013, 06:51:25
12

Как вы отмечаете, номенклатура «.d» является загадочной и странной и на самом деле не имеет места в какой-либо современной системе - вы заметите, что большинство современных услуг имеют тенденцию к ее удалению.

Причина, по которой каталог является /etc/init, а не /etc/upstart, заключается в том, что Upstart - это имя проекта, фактический установленный двоичный файл все еще /sbin/init, поэтому для его конфигурации не было бы смысла иметь имя, которое не соответствовало бы двоичному.

ответил Scott 13 +04002010-10-13T05:59:40+04:00312010bEurope/MoscowWed, 13 Oct 2010 05:59:40 +0400 2010, 05:59:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132