Чи /etc/init.d
каталог убунту рівнозначний (функціонально) тому, що я вважаю більш стандартним /etc/rc.d/
(принаймні, для арки)? Чи є якась конкретна причина, що використовується для init.d замість rc.d для запуску сценаріїв?
Чи /etc/init.d
каталог убунту рівнозначний (функціонально) тому, що я вважаю більш стандартним /etc/rc.d/
(принаймні, для арки)? Чи є якась конкретна причина, що використовується для init.d замість rc.d для запуску сценаріїв?
Відповіді:
Ubuntu використовує /etc/init.d
для зберігання сценаріїв SysVinit, оскільки Ubuntu заснований на Debian, і саме для цього використовується Debian. Red Hat використовує /etc/rc.d/init.d
. Я забуваю, що використовує Slackware. Просто немає стандартного місця.
Ubuntu перебуває в процесі переходу з SysVinit на Upstart , в якому використовуються конфігураційні файли в /etc/init
.
/etc/init.d
. Перехід до /etc/init/*.conf
початку розпочався пізніше (8.04 все ще був у стилі SysV, 10.04 вже переходив).
/etc/init.d була давньою історичною локацією для SVR4. Я забув, чому redhat додав рівень /etc/rc.d/. Я думаю, щоб виділити речі на rc.d, але тоді потрібно було б додати купу символьних посилань для зворотної сумісності. Таким чином, є /etc/init.d у redhat, просто він посилається в іншому місці.
Таким чином, стандартне місцезнаходження - /etc/init.d, хоча це може бути символьним посиланням, а не реальним каталогом.
Було кілька дійсно старих дистрибутивів Linux, які копіювали BSD з /etc/rc.local, але майже ніхто більше не використовує це.
Історично /etc/rc.d
дерево каталогів позначає систему Init, яка слідує традиції 4.4 BSD ініціалізації системи, яку зазвичай називають системою rc
init. Вся сучасна (Безкоштовна / Відкрита / Мережа) система BSD та Slackware Linux дотримуються цієї традиції.
/etc/init.d
Дерево каталогів позначає систему ініціалізації System V (SysV) , який слідує за AT & T UNIX, SunOS, Solaris традиції ініціалізації системи. Це зазвичай називають системою SysV Init. Debian власне дотримується цієї традиції в серії Wheezy, але планує використовувати SystemD в серії Джессі. Історично RedHat та похідні використовували SysV Init, але більше не так.
Також з часом дистрибуції прийняли особливості обох схем init.
Насправді, принаймні в CentOS 6.8 Сантьяго, /etc/init.d
це лише м'яке посилання на /etc/rc.d
.
PuppyLinux має і /etc/rc.d, і /etc/init.d , не є символьним посиланням. Що таке симпосилання - /etc/rc.d/init.d , який пов'язує рівень до /etc/init.d (я дивлюсь на Щеня на базі Slackware - також є Ubuntu та інші аромати .) У кожному README.txt є пояснення їх підходу.
Гаразд, /etc/init.d
це місце, де можна швидко розгорнути сценарій init. Другий крок до активації цього сценарію - запустити chkconfig
команду над ним. Скажімо, ви запустите chkconfig --add <yourscript>
, символічні посилання будуть створені між /etc/init.d/<yourscript>
і/etc/rc.d/rcX.d/S50<script>
наприклад. X у rcX.d, що представляє номер запуску сценарію, і S50, що представляє тип сценарію (є два з цих типів, S&K, S повідомляє системі запускати сценарій, коли він завантажується, і K повідомляє системі вийдіть із скрипту витончено, коли ви закриєте. Число після S / K позначає порядок, в якому вони трапляються, якщо у вас є деякі сценарії, які залежать від активності інших). За замовчуванням, якщо в сценарії не вказано жодного рівня запуску, або при видачі команди runlevel, CentOS6 створює сценарії S50 для рівнів 2,3,4,5 та K50 для рівнів запуску 0,1,6.
/etc/rc.d
що я бачив ... Я підозрюю, що він може використовуватися в bsd.