Home # 149; статті # 149; Управління автозавантаженням в debian
Скрипти ініціалізації - це не великі програми на shell, які зазвичай керують сервісами, також відомими як демони. Інші застосування для скриптів ініціалізації включають в себе просте управління станом чого-небудь на зразок hdparm (управляє часом переходу в сплячий режим для жорстких дисків), iptables (завантаження правил файрвола в ядро) і setserial (конфігурація послідовного порту). Директорія /etc/init.d містить скрипти виконуються за допомогою init під час завантаження і стан ініціалізації.
Скрипти ініціалізації також важливі під час запуску і зупинки системи (в * nix системах просто змінюється "runlevel"). Якщо ви подивіться на список процесів, запущених на вашій машині (спробуйте команду ps auwx), то є ймовірність, що процес з найменшим PID буде називатися "init". Це батьківський процес для всіх процесів, це перша програма яку ядро запускає при завантаженні. Програма init, яку можна знайти шляхом / sbin / init, відповідальна за в робочий стан після того, як завантажиться ядро.
Існує три прості утиліти для управління стартовими і сценарій запуску:
Далі ми розглянемо їх все і наведемо кілька прикладів їх використання.
Встановлює і видаляє посилання на скрипти ініціалізації в System-V стилі. update-rc.d автоматично оновлює посилання на скрипти ініціалізації в System-V стилі виду /etc/rcrunlevel.d/NNname на скрипти /etc/init.d/name. Вони запускаються за допомогою init коли змінюється рівень завантаження і зазвичай використовуються для запуску або зупинки системних сервісів, таких як демони. init підтримує такі рівні завантаження - 0123456789S і NN - це двухціфренний код використовуваний init для визначення в якому порядку повинні запускатися скрипти.
update-rc.d [-n] [-f] name remove
update-rc.d [-n] name defaults [NN | NN-start NN-stop]
update-rc.d [-n] name start | stop NN runlevel runlevel start | stop NN runlevel runlevel
-n - нічого не робити, тільки показати що буде зроблено.
-f - змусити видаляти символічні посилання навіть якщо /etc/init.d/name все ще існує.
Приклади використання update-rc.d
Вставити посилання з використанням defaults:
Еквівалентна команда з використанням явних наборів аргументів:
Якщо ви хочете видалити скрипт з автозавантаження, то використовуйте наступну команду:
Якщо ви хочете дізнатися про команду update-rc.d більше, то прочитайте сторінку man.
Rcconf дозволяє управляти тим, які сервіси будуть запускатися коли система завантажується або йде в перезавантаження. Утиліта показує меню, що містить всі сервіси, які повинні бути запущені при завантаженні. Ті, які повинні запускатися помічені і ви можете включити або виключити окремі сервіси. Ця утиліта конфигурирует системні сервіси у взаємодії з системними рівнями завантаження (runlevels). Вона включає або вимикає сервіси із застосуванням скриптів в /etc/init.d/. Rcconf працює з конфігурацією рівнів завантаження в стилі System-V. Фактично це TUI (Text User Interface) до команди update-rc.d
Rcconf отримує список сервісів від /etc/init.d і переглядає директорії /etc/rc?.d щоб визначити запущений сервіс чи ні.
Якщо число (NN в /etc/rc?.d/NNname) не дорівнює 20 (за замовчуванням), то rcconf зберігає ім'я сервісу і число в / var / lib / rcconf / services так що можливо відновити конфігурацію сервісу в початковому стані.
Установка rcconf в Debian.
Ця команда виконає установку. Тепер ви можете використовувати утиліту за допомогою команди:
Якщо буде виводиться повідомлення rcconf needs dialog or whiptail, то необхідно буде встановити утиліту dialog:
Тепер запустивши rcconf Ви побачите на екрані наступне:
/ Var / lib / rcconf / services - файл з даними про номерах процесів.
/ Var / lib / rcconf / lock - файл блокування.
/var/lib/rcconf/guide.default - Guide File який генерується утилітою update-rcconf-guide.
/ Var / lib / rcconf / guide - Guide File який може бути визначений користувачем (адміністратором).
Якщо ви хочете дізнатися більше про утиліту rcconf, то ознайомтеся зі сторінкою man.
Цей пакет надає альтернативний механізм для завантаження або зупинки системи і зміни рівнів завантаження. Посилання /etc/rc?.d/* будуть сконвертовані в єдиний конфігураційний файл /etc/runlevel.conf який легше адмініструвати, ніж символічні посилання і який більш гнучкий. Пакет автоматично конвертує ваші існуючі символьні посилання в файл під час установки і конвертує файл назад в символьні посилання при видаленні. Обидва механізми сумісні за допомогою скриптів /etc/init.d/rc, /etc/init.d/rc*, /usr/sbin/update-rc.d і /usr/sbin/invoke-rc.d
Установка file-rc в Debian.
В ході установки в русифікованої версії Debian виводяться наступні повідомлення:
Видалити наступні пакети:
1) sysv-rc
Поточний стан: 41 оновлений [-1].
Конфігураційний файл file-rc розташований в /etc/runlevel.conf. Якщо ви хочете подивитися конфігураційний файл за умовчанням, то це можна зробити тут.
#
05 - 0 /etc/init.d/halt
05 - 1 /etc/init.d/single
05 - 6 /etc/init.d/reboot
10 0,1,6 2,3,4,5 /etc/init.d/sysklogd
12 0,1,6 2,3,4,5 /etc/init.d/kerneld
[...]
89 0,1,6 2,3,4,5 /etc/init.d/cron
99 - 2,3,4,5 /etc/init.d/rmnologin
99 0,1,6 2,3,4,5 /etc/init.d/xdm