28.3. Ускорение работы с помощью файла inittab

28.3. Ускорение работы с помощью файла inittab

Каталог уровня выполнения состоит из набора сценариев, более совершенных, чем службы. Слово "services" в этом контексте означает и демон, и приложение, и серверы, и подсистемы или процессы сценария. Во время загрузки системы вызывается процесс init (этот процесс является родоначальником всех остальных процессов). Одной из задач упомянутого процесса является определение запускаемых служб, а также определение уровня выполнения, заданного по умолчанию. Эти сведения можно получить, просматривая текстовый файл конфигурации под названием inittab, размещенный в каталоге /etc. Процесс init также использует этот файл для получения указаний по поводу загрузки определенных процессов. Если необходимо изменить этот файл, сначала создайте резервную копию. В случае повреждения файла или возникновения ошибок, приводящих к "деградации" системы, система не будет загружаться обычным образом; вам придется загружаться в однопользовательском режиме и устранять повреждения в файле.

Файл inittab включает поля, имеющие весьма лимитированный формат. Формат файла будет следующий:

id:rstart:action:process

Поле id имеет уникальное название, которое идентифицирует запись процесса,

Поле rstart содержит число, которое указывает, на каком уровне выполнения запускается процесс.

Поле action указывает процессу init, как рассматривать текущий процесс. Существует большое количество названий для поля action, но наиболее распространенными являются wait и respawn. Название wait означает, что начавшийся процесс ожидает завершения. Название respawn означает, что процесс начинается даже в том случае, если он еще не существует. Если же существует, то запускается заново в тот момент, когда он уже завершается.

Поле process содержит действительную команду для выполнения. Ниже приводится фрагмент файла inittab.

$ pg /etc/inittab

id:3:initdefault:

# Инициализация системы.

si::sysinit:/etc/rc.d/rc.sysinit

уровень выполнения 0 10:0:wait:/etc/rc.d/rc 0

уровень выполнения 1 11:1:wait:/etc/rc.d/rc 1

уровень выполнения 2 12:2:wait:/etc/rc.d/rc 2

уровень выполнения 3 13:3:wait:/etc/rc.d/rc 3

уровень выполнения 4 14:4:wait:/etc/rc.d/rc 4

уровень выполнения 5 15:5:wait:/etc/rc.d/rc 5

уровень выполнения 6 16:6:wait:/etc/rc.d/rc 6

Выполнение gettys на стандартных уровнях выполнения

1:12345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:234 5:respawn:/sbin/mingetty tty4

5:234 5:respawn:/sbin/mingetty tty0

6:2345:respawn:/sbin/mingetty ttyS1 vt100

Первая строка файла описывает уровень выполнения системы, заданный по умолчанию; ниже приводится уровень выполнения 3, который не является чем?либо необычным.

Строки, которые начинаются числами 10—16, определяют запуск или прекращают выполнение сценариев уровней выполнения для определенных уровней выполнения. Например, рассмотрим следующую строку:

15:5:wait:/etc/rc.d/rc 5

В строке содержится следующая информация: если пользователь находится на уровне выполнения 5, сценарий /etc/rc.d/rc запускается с параметром 5. Это означает, что сценарий /etc/rc.d/rc выполняет все сценарии в каталоге /etc/rc.d/rc/rc5.d.

Последняя строка файла — уровни выполнения 2, 3, 4 и 5 -cвидетельствует о том, что процесс заново возрождается. То есть, процесс никогда не уничтожится (ну, по крайней мере, в течение одной секунды). Непрерывно отвергается процесс mingetty для последовательного порта tty$1. В данном случае в роли параметра используется ID терминала, который имеет значение vt100.