Читайте также: |
|
Init-скрипти – це маленькі сценарії командного процесора (shell), які контролюють сервіси, також відомі як демони. Також вони можуть контролювати стан деякого програмного забезпечення, на кшталт, hdparm, iptables (завантаження правил міжмережевого екрана в ядро) та setserial (налаштування COM-порта). Усі вони містяться в папці /etc/init.d, і запускаються/зупиняються init`ом при завантаженні системи та переході на інший рівень виконання.
Init-сцерарії виконують важливу роль при запусканні та зупинці системи (у *nix-системах просто змінюється рівень виконання (runlevel). Якщо подивитися на перелік запущених на системі процесів (команда # ps auwx), то, імовірно, процес з найменшим PID буде мати назву “init”. Це батько усіх процесів, перша програма, яку ядро запускає при завантаженні. Іnit, котрий можна знайти в /sbin/init, відповідає за завантаження системи й керування усіма процесами під час її роботи.
Найпростіші (і, мабуть, найкращі) утиліти для керування init-сценаріями:
rcconf;
update-rc.d;
file-rc.
Тепер розглянемо кожну з них, використовуючи реальні приклади.
Rcconf
Rcconf дозволяє вказати демони, які запускатимуться при завантаженні системи. Інтерфейс виконаний у вигляді звичайного меню, в якому є перелік усіх демонів, які можуть бути запущені разом із системою. Якщо потрібно, щоб якийсь демон запускався, встановіть навпроти нього галочку, якщо ж вам цього не потрібно, зніміть її.
Ця утиліта налаштовує системні сервіси, пов’язані з рівнем виконання системи. Вона вмикає/вимикає сервіси, використовуючи сценарії у папці /etc/init.d/. Rcconf працює з System-V стилем init. Це – псевдографічна надбудова для іншої утиліти – update-rc.d.
Rcconf отримує перелік сервісів з /etc/init.d і дивиться у папки /etc/rc?.d, щоб дізнатися, який демон працює, а який ні.
Якщо номер (NN /etc/rc?.d/NN імя) не 20 (за замовчуванням), rcconf зберігає ім’я сервісу і номер у /var/lib/rcconf/services, щоб пізніше можна було “відкатати” зміни.
Встановлюємо rcconf:
# apt-get install rcconf
Після цього потрібно запустити rcconf:
# rcconf
Ось яке вікно ви побачите перед собою:
Важливіфайли:
/var/lib/rcconf/services - The service number data file.
/var/lib/rcconf/lock – Lock файл.
/var/lib/rcconf/guide.default – Guide File update-rcconf-guide generates.
/var/lib/rcconf/guide – Guide File user (Administrator) can define.
Встановлення і видалення init-сценаріїв стилю System-V style. update-rc.d автоматично оновлює посилання на init-сценарії стилю у /etc/rcRUNLEVEL.d/NNname до /etc/init.d/name. Вони запускаються init`ом під час зміни рівня виконання і, зазвичай, використовуються для запуску і зупинки демонів. Підтримуються наступні рівні виконання: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, S та NN.
Синтаксис update-rc.d:
update-rc.d [-n] [-f] ім’я remove
update-rc.d [-n] ім’я defaults [NN | NN-start NN-stop]
update-rc.d [-n] ім’я start|stop NN рівень – виконання
runlevel start|stop NN рівень – виконаннярівень – виконання
Якщозапуститиїїзізвичайнимипараметрамидлястартуабозупинкидемона, update-rc.d робитьпосилання /etc/rcrunlevel.d/[SK]NNім’янасценарійв /etc/init.d/name. Якщобудь-якіфайли /etc/rcrunlevel.d/[SK]??ім’явженаявні, то update-rc.d неробитьнічого.
Додаткові опції:
-n – Нічого не робити, просто вивести переліктого, що ми маємо.
-f – Видалення лінків, навіть якщо вони й досі присутні у /etc/init.d/name.
Приклиди використання update-rc.d:
Встановити симлінк з defaults:
# update-rc.d samba defaults
Еквівалентна команда, яка використовує явний набір аргументів:
# update-rc.d samba start 20 2 3 4 5 | stop 20 0 1 6
Для того, щоб вилучити сценарій з автозавантаження, потрібно скористатися наступною командою:
# update-rc.d -f samba remove
file-rc
Є альтернативний механізм завантаження, в якому використовується єдиний конфігураційний файл. Цей архів призначений для керування альтернативним механізмом завантаження системи, завершенням її роботи і зміни рівня виконання. Посилання у /etc/rc?.d/* конвертуються в єдиний конфігураційний файл /etc/runlevel.conf, який дозволяє значно простіше і гнучкіше керувати демонами. Архів автоматично конвертує наявні симлінки в один файл і повертає усе при його видаленні з системи. Обидва механізми сумісні через /etc/init.d/rc, /etc/ init.d/rcS, /usr/sbin/update-rc.d та /usr/sbin/invoke-rc.d сценарії.
Приклади:
#
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
Дата добавления: 2015-11-30; просмотров: 34 | Нарушение авторских прав