У чому різниця між /etc/init/і /etc/init.d/?
Загалом, яке значення .dсуфікс передає до каталогу?
У чому різниця між /etc/init/і /etc/init.d/?
Загалом, яке значення .dсуфікс передає до каталогу?
Відповіді:
/etc/init.dмістить сценарії, використовувані інструментами init 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зі служби. Як і на простоту, 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-типово" або "80-користувач", щоб вони виконувались у потрібному порядку.
У цьому випадку /etc/init.d/це вказує на те, що всі сценарії в "init.d" повинні бути виконані. Однак на сьогодні система init сучасних операційних систем дещо більше задіяна, але назва каталогів все ще існує.
Як ви зазначаєте, номенклатура ".d" є дивовижною і дивною, і насправді не має місця в будь-якій сучасній системі - ви помітите, що більшість сучасних сервісів, як правило, її скидають.
Причина, в якій каталог є, /etc/initа не /etc/upstartв тому, що Upstart - це ім'я проекту, фактично встановлений бінарний файл все ще є, /sbin/initтому його конфігурація не має сенсу мати ім'я, яке не відповідає бінарному.
rules.d, Удев, відносно недавній Xorg xorg.conf.d, не надто старий /etc/profile.dтощо.
.dкаталоги, введені разом із системою V. Тоді це було дивовижне позначення і, зрештою, ймовірно, ідея однієї людини, яка потрапила до кодової бази і не змогла залишити її. Наприклад, якщо ви вважаєте, щоcatце неправильне ім'я для виконуваного завдання, уявіть, скільки файлів у всій системі вам доведеться торкнутися, щоб змінити його.