Настройка 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
Выполняемая команда.
1:2345:respawn:/sbin/getty 9600 tty1Первое поле строки указывает, что это строка для /dev/tty1. Второе поле говорит, что это применяется к уровням выполнения 2, 3, 4 и 5. Третье поле означает, что команда должна выполняться многократно (кто-то зашел, вышел и снова зашел в систему с терминала). Последнее поле указывает команду, которая выполняет getty на первом виртуальном терминале.
Если Вы хотите добавить терминалы или телефонные линии с модемами для доступа к системе, добавьте строки в /etc/inittab, по одной на каждый терминал или модемную линию. Более подробная информация есть в man-руководствах по init, inittab и getty. Разные версии getty могут иметь разные параметры, так что сначала прочитайте руководство!
Если команда при запуске терпит неудачу, а init сконфигурирован на ее перезапуск, то будет занято много ресурсов системы постоянными перезапусками команды. Во избежание такой ситуации init хранит протокол перезапусков команды, и если частота перезапусков слишком высока, делает паузу в 5 минут перед очередным перезапуском команды.