Настройка init для запуска getty: файл настроек /etc/inittab

При запуске системы init читает файл настроек /etc/inittab. Когда система уже работает, он перечитает данный файл при получении сигнала HUP. Такое свойство избавляет от необходимости перезагружать систему, чтобы сделать изменения конфигурации актуальными для init. Используйте команду kill -HUP 1 от имени root-пользователя для передачи такого сигнала. Только не забудьте -HUP! Если Вы дадите команду kill 1, то уничтожите процесс init и получите останов системы с жутким скрежетом.

Файл /etc/inittab устроен довольно просто. Мы начнем с наиболее простого случая настройки getty. Каждая строка в /etc/inittab состоит из четырех полей, разделенных двоеточиями: id:runlevels:action:process Поля описаны ниже. Кроме таких строк /etc/inittab может содержать пустые строки и строки комментариев, начинающиеся со знака `#'; такие строки игнорируются системой.

id

Определяет строку в файле. Для строк настройки getty, указывает терминал, на котором будет запущена данная копия (символ после /dev/tty в имени файла устройства). Для других строк данное значение особого значения не имеет и нужно только для выполнения требований формата файла. Значение в данной позиции должно быть уникальным для каждой строки!

runlevels

Уровни выполнения, на которых данная строка рассматривается. Каждый уровень выполнения задается одной цифрой без разделителей.

action

Задает действие, которое должно быть выполнено, например respawn для того, чтобы выполнить команду в следующем поле многократно или once, чтобы выполнить команду только один раз.

process

Выполняемая команда.

Для запуска getty на первом виртуальном терминале (/dev/tty1), на всех нормальных многопользовательских уровнях выполнения (2-5), примените строку: 1:2345:respawn:/sbin/getty 9600 tty1 Первое поле строки указывает, что это строка для /dev/tty1. Второе поле говорит, что это применяется к уровням выполнения 2, 3, 4 и 5. Третье поле означает, что команда должна выполняться многократно (кто-то зашел, вышел и снова зашел в систему с терминала). Последнее поле указывает команду, которая выполняет getty на первом виртуальном терминале.

Если Вы хотите добавить терминалы или телефонные линии с модемами для доступа к системе, добавьте строки в /etc/inittab, по одной на каждый терминал или модемную линию. Более подробная информация есть в man-руководствах по init, inittab и getty. Разные версии getty могут иметь разные параметры, так что сначала прочитайте руководство!

Если команда при запуске терпит неудачу, а init сконфигурирован на ее перезапуск, то будет занято много ресурсов системы постоянными перезапусками команды. Во избежание такой ситуации init хранит протокол перезапусков команды, и если частота перезапусков слишком высока, делает паузу в 5 минут перед очередным перезапуском команды.