Inittab — Команда Linux / Unix

The inittab файл описує, які процеси запускаються під час завантаження та під час нормальної роботи. У цьому розрізняє різні рівні виконання, кожен з яких може мати свій набір запущених процесів. Допустимі рівні виконання 0-6 плюс А, Б, і C для записів на вимогу. Запис у inittab файл має такий формат:

id: runlevels: action: process

Рядки, що починаються з `#', ігноруються.

у файлі, id– це унікальна послідовність із 1-4 символів, яка ідентифікує запис у inittab.

програміст на роботі
Getty Images / PeopleImages.com

Для gettys або інших процесів входу, файл id поле має бути суфіксом tty відповідного tty, напр. 1 для tty1. Інакше облік входу може працювати некоректно.

Рівні виконання, дії та процеси

Файл iniitab містить інформацію, зокрема:

  • рівні виконання перелічує рівні виконання, для яких слід виконати вказану дію.
  • дії описує, які дії слід вжити.
  • процес вказує процес, який буде виконано. Якщо поле процесу починається з символу "+", у цьому не виконуватиме облік у utmp та wtmp для цього процесу. Це потрібно для gettys, які наполягають на власному утриманні utmp/wtmp. Це також історична помилка.

The рівні виконання поле може містити кілька символів для різних рівнів виконання. Наприклад, 123 вказує, що процес слід запустити на рівнях виконання 1, 2 і 3. The рівні виконання для на вимогу записи можуть містити ан А, Б, або C. The рівні виконання області сисініт, завантаження, і завантаження записи ігноруються.

Коли рівень виконання системи змінено, всі запущені процеси, які не вказані для нового рівня запуску, припиняються, спочатку за допомогою SIGTERM, а потім за допомогою SIGKILL.

Стандарти дій

Допустимі дії для дії поля є:

  • відродження: процес буде перезапущено щоразу, коли він завершиться (наприклад, getty).
  • чекай: Процес буде запущено один раз, коли буде введено вказаний рівень виконання та у цьому буде чекати його припинення.
  • один раз: Процес буде виконано один раз, коли буде введено вказаний рівень виконання.
  • завантаження: процес буде виконуватися під час завантаження системи. The рівні виконання поле ігнорується.
  • завантаження: процес буде виконуватися під час завантаження системи, поки у цьому чекає завершення (наприклад, /etc/rc). The рівні виконання поле ігнорується.
  • на вимогу: процес, позначений символом на вимогу Runlevel буде виконуватися щоразу, коли зазначенона вимогу runlevel викликається. Однак жодних змін рівня виконання не відбудеться (на вимогу рівні запуску: "a", "b" і "c").
  • init за замовчуванням: An init за замовчуванням запис визначає рівень виконання, який слід ввести після завантаження системи. Якщо жодного не існує, у цьому запитає рівень запуску на консолі. The процес поле ігнорується.
  • сисініт: процес буде виконуватися під час завантаження системи. Він буде виконаний раніше за будь-якого завантаження абозавантаження записи. The рівні виконання поле ігнорується.
  • powerwait: Процес буде виконано, коли живлення вимкнеться. Init зазвичай повідомляє про це процесом, який спілкується з ДБЖ, підключеним до комп’ютера. У цьому чекатиме завершення процесу, перш ніж продовжити.
  • збій живлення: Як для powerwait, крім того у цьому не чекає завершення процесу.
  • powerokwait: Цей процес буде виконано, як тільки у цьому повідомляється, що електропостачання відновлено.
  • powerfailnow: Цей процес буде виконано, коли у цьому повідомляється, що батарея зовнішнього ДБЖ майже розряджена, а живлення відключено (за умови, що зовнішній ДБЖ і процес моніторингу можуть виявити цей стан).
  • ctrltdel: процес буде виконано, коли у цьому приймає сигнал SIGINT. Це означає, що хтось на системній консолі натиснув кнопку Ctrl-Alt-Del комбінація клавіш. Як правило, хтось хоче виконати якусь операцію закрити або перейти на однокористувацький рівень, або до перезавантажити машина.
  • kbrequest: процес буде виконано, коли у цьому отримує сигнал від обробника клавіатури, що на клавіатурі консолі була натиснута спеціальна комбінація клавіш.

Документація для цієї функції ще не завершена; Додаткову документацію можна знайти в пакетах kbd-x.xx. В основному ви хочете зіставити деяку комбінацію клавіатури з дією «KeyboardSignal». Наприклад, на карту Alt+стрілка вгору для цієї мети використовуйте наступне у файлі розкладок:

alt keycode 103 = KeyboardSignal

Приклад файлів 'inittab'

Це приклад вкладки inittab, яка нагадує стару вкладку inittab Linux:

# inittab для Linux
id: 1: initdefault:
rc:: bootwait:/etc/rc
1:1:respawn:/etc/getty 9600 tty1
2:1:respawn:/etc/getty 9600 tty2
3:1:respawn:/etc/getty 9600 tty3
4:1:respawn:/etc/getty 9600 tty4

Цей файл inittab виконується /etc/rc під час завантаження і запускає gettys на tty1-tty4.

Більш детальний inittab з різними рівнями запуску:

# Рівень для запуску
id: 2:initdefault:
# Ініціалізація системи перш за все.
si:: sysinit:/etc/rc.d/bcheckrc
# Рівень виконання 0,6 - це зупинка та перезавантаження, 1 - режим обслуговування.
l0:0:зачекайте:/etc/rc.d/rc.halt
l1:1:зачекайте:/etc/rc.d/rc.single
l2:2345:зачекайте:/etc/rc.d/rc.multi
l6:6:зачекайте:/etc/rc.d/rc.reboot
# Що робити на «привітанні 3 пальцями».
ca:: ctrlaltdel:/sbin/shutdown -t5 -rf зараз
# Runlevel 2&3: getty на консолі, рівень 3 також getty на порту модему.
1:23:respawn:/sbin/getty tty1 VC linux
2:23:respawn:/sbin/getty tty2 VC linux
3:23:respawn:/sbin/getty tty3 VC linux
4:23:respawn:/sbin/getty tty4 VC linux
S2:3:respawn:/sbin/uugetty ttyS2 M19200

Використовувати чоловік команда (% чоловік), щоб побачити, як команда використовується на вашому комп’ютері.