Уровни выполнения являются режимами работы init и определяют выполняемые системные процессы и предоставляемые сервисы. Уровни выполнения обозначаются номерами (см. таблицу 7-1). Нет единого мнения по поводу использования определяемых администратором уровней выполнения (2-5). Одни системные администраторы настраивают разные уровни выполнения для разных вариантов работы системы, другие ограничиваются одним вариантом, и не меняют уровни выполнения вовсе. Разные дистрибутивы Linux поставляются с разными настройками. В общем, смотрите, пробуйте, чтоподходит лично Вам.
Таблица 7-1. Уровни выполнения
0 | Выключение системы. |
1 | Однопользовательский режим (для администрирования в сложных случаях). |
2-4 | Нормальная работа (настраивается администратором). |
5 | Нормальная работа (запускается X Window System). |
6 | Перезагрузка. |
Уровни выполнения настраиваются в /etc/inittab
строками вида:
l2:2:wait:/etc/init.d/rc 2
Первое поле является меткой-идентификатором. Второе определяет, что данная
строка применима только для уровня выполнения 2. Третье определяет, что
init должен выполнить команду в четвертом поле только
один раз и ждать (при переходе на данный уровень) и подождать ее выполнения.
Скрипт /etc/init.d/rc выполняет все команды для
запуска и остановки сервисов, работающих на уровне выполнения 2.
Команда в четвертом поле выполняет все работы по переходу на уровень 2. Она запускает сервисы, которые еще не запущены, и завершает сервисы, которые на данном уровне работать не должны. Как именно производится вся настройка зависит от дистрибутива Linux.
Когда init запускается, он ищет в
/etc/inittab строку, в которой указан уровень
выполнения, указанный по умолчанию:
id:2:initdefault:
Можно указать, чтобы init при запуске установил не
уровень выполнения по умолчанию, передав при загрузке в качестве параметра
аргумент single или emergency
. Ядерные параметры командной строки могут быть переданы, например,
через LILO. Это позволяет выбрать, например, однопользовательский режим
(уровень выполнения 1).
Как показывает практика переводчика, здесь главное следить за тем, чтобы по умолчанию не был задан уровень 0 или 6.
Когда система работает, можно поменять уровень выполнения командой telinit. При смене уровня выполнения, init выполнит соответствующие команды из файла /etc/inittab.