Чому сценарії init.d містяться в тощо?


16

Я продовжую читати / слухати, що /etcстосується файлів конфігурації системи. Може хто - то пояснити / дати мені деяку інтуїцію, чому ці скрипти запуску / зупинки / перезапуску різні програми , як правило, в /etcзамість /varабо /usrабо що - щось подібне?


Хоча питання може бути трохи орієнтоване на думку, я думаю, що на це питання можна відповісти фактичними фактами.
Джулі Пелтьє

Чи є питання щодо історичних причин "на основі думки"? Озираючись назад, ймовірно, є якась фактична причина, чому щось сталося. Навіть якщо це просто "тому, що містер Грандхакер зробив це так", це не до думки того, хто зараз відповідає на питання.
ilkkachu

За винятком того, що в запитанні було сказано "чому вони повинні бути", що є поводом для "барвистих дискусій" на основі думки. Відредагували трохи, щоб зменшити його. @ Адам, скасуй, якщо ти вважаєш, що це проти вашого наміру.
ilkkachu

1
Тому що коли і як запускаються сервіси - це конфігурація системи.
OrangeDog

1
Для істеричних родзинок.
TMN

Відповіді:


22

На початку (як історично, так і в процесі завантаження ...) /etcє частиною /(першої змонтованої файлової системи), поки /usrїї не було (поки диски не стали великими). /varмістить тимчасові дані, тоді як ці сценарії не є тимчасовими.

Це не так просто, але все почалося саме так і мало підстав переробляти весь макет каталогів.


1
Як ви кажете, це не так просто. У різних комерційних системах UNIX /etcв той чи інший момент були фактичні бінарні виконувані файли . Принаймні, init.dце в основному сценарії в сучасних системах. Але все одно неможливо /etcвстановити лише заново.
Satō Katsura

2
@SatoKatsura: З появою компільованих мов, схожих на мови сценаріїв, я почав помічати, що деякі / etc сценарії (навіть скрипти для init) замінюються програмами go - бінарними виконуваними файлами.
slebetman

Цікаво також зазначити, що сучасні заміни sysVinit насправді використовують прості файли конфігурації замість повноцінних сценаріїв, тому вони /etcможуть закінчитися очищенням неконфігураційних речей.
GnP

/tmpзберігає тимчасові дані. /varмістить змінні дані
Ніл МакГуйган

14

Сценарії запуску - насправді важлива частина конфігурації системи.

Хоча процес завантаження набагато менш налаштований, ніж це було 15-30 років тому, і більшість конфігурацій запуску було автоматизовано, всі ті адміністративні варіанти, що визначають послідовність запуску, все ще присутні в /etc.

Це являє собою дуже централізований спосіб підтримки та резервного копіювання конфігурації системи. У більшості систем резервного копіювання /etcдостатньо, щоб можна було легко перевстановити всю систему. Ви просто зробите повну перевстановлення потрібних програм та відновите /etcрезервну копію.


3

М. Дікі та М. Пелтьє обидва придбали приміщення. Але приміщення неправильне.

Якщо ви прочитали, що " /etcпризначено для файлів конфігурації системи", ви прочитали щось, що не малює повну картину для вас. Подивіться на ім’я. Це "et cetera". Люди в той чи інший час помістили все, кухонну раковину кухні.

  • /etc/rc колись (а в деяких системах все ще є) програма запускається, щоб запустити все.
  • Файл зображень програми для першого користувальницького процесу був /etc/initв один момент (наприклад, у XENIX, задовго до того, як на початку було навіть ідея).
  • /etc/profile, /etc/zprofileі всі інші - це безумовно сценарії.
  • OpenBSD's /etc/netstart- програма; як і FreeBSD /etc/ipfw.rules.
  • Так само і FreeBSD /etc/rc.suspendта /etc/rc.resume; і дійсно /etc/rc.sendmail, /etc/rc.bsdextendedі /etc/rc.firewall.

Точно так же, якщо ви читали , що «скрипти, запускати / зупиняти / перезапускати різні програми , як правило, в /etcзамість /varабо /usrабо що - щось подібне» , то ви що - то інше , що не прикрашає повну картину для вас читати.

  • Умовою FreeBSD / PC-BSD є створення /usr/local/etc/rc.d/каталогу для rcсценаріїв, що не працюють в системі . rcсценарії для різного роду живуть там, а не під /etc.
  • Ви знайдете Daemontools-сімейні людина покласти деякі речі управління послугами в /var/sv, /var/serviceі тому подібні місця. (Мій набір інструментів "nosh", наприклад, забезпечує майже тисячу пакетів служб /var/sv. Єдині службові пакети, що входять, /etc/service-bundles- це між 60 і 70, необхідними до /usrмонтажу, включаючи служби, які монтують і перевіряють, /usrякщо це потрібно.)
  • Конвенції системної операційної системи містять у собі деякі речі /etc/systemd, деякі речі /run/systemd, деякі речі /usr/lib/systemdі ( хоча вони недокументовані з незрозумілих причин ) /usr/local/lib/systemd. Знову ж таки, більшість "речей для запуску / зупинки послуг" можна знайти під, /usrа не під /etc.

2

Ви б добре проаналізували стандарт ієрархії файлової системи . Він детально пояснить, чому саме це відбувається, але він також містить таку інформацію про багато інших шляхів, про які вам може бути цікаво.

Стандарт файлової системи був розроблений для використання розробниками дистрибуції Unix, розробниками пакетів та системними розробниками. Однак він, в першу чергу, призначений для посилання та не є навчальним посібником щодо управління файловою системою Unix або ієрархією каталогів.


Це не пояснює історичну основу.
Thorbjørn Ravn Andersen

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.