INITTAB(4)
НАЗВАНИЕ
inittab - схема процесса init
ОПИСАНИЕ
Файл /etc/inittab содержит сценарий для исполнения
программой init(1M) роли главного диспетчера процессов.
Самым заметным из диспетчеризуемых является процесс
инициализации терминальных линий /etc/getty. Другие
примеры - демоны и shell.
Файл inittab состоит из строк, имеющих следующий формат
(важен и порядок строк):
имя:уровень_выполнения:действие:процесс
Каждая строка оканчивается символом перевода строки,
однако его экранирование посредством символа \ позволяет иметь строки продолжения. В любом случае длина строки не должна первышать 512 символов. В поле процесс могут быть включены комментарии согласно правилам
shell'а. Комментарии к строкам, ответственным за запуск
процесса getty(1M), показываются командой who(1). Предполагается, что в этих комментариях содержится информация о линии, например дислокация соответствующего терминала. На количество строк в файле inittab не наложено
никаких ограничений (только на их длину). Поля строк
имеют следующий смысл:
- имя
- Имя, состоящее из одного или двух символов, должно
однозначно идентифицировать строку.
- уровень_выполнения
- Это поле определяет уровень выполнения, при котором строка будет обрабатываться. Уровень выполнения непосредственно соответствует конфигурации
процессов в системе. Каждому процессу, запущенному
init'ом, присваивается уровень или уровни выполнения, при которых тот может существовать. Уровни
выполнения обозначаются цифрами от 0 до 6. Например, если система находится на уровне 1, то будут
обработаны только строки, содержащие единицу в поле уровень_выполнения. Когда к init'у обращаются с
запросом о смене уровня выполнения, всем процессам, которые не должны существовать на новом уровне, посылается предупреждающий сигнал SIGTERM и
дается 20 секунд на завершение, после чего "лишние" процессы принудительно терминируются сигналом
SIGKILL. Можно указать несколько допустимых уровней выполнения, если задать ряд цифр из диапазона
от 0 до 6. Если уровень_выполнения вообще не указан, то считается, что процесс может выполняться
на любом уровне. Существует также три дополнительных значения, a, b и c, которые могут быть указаны
в данном поле, хотя они и не являются реальными
уровнями выполнения. Строки с такими значениями
уровня выполняются только по запросу процесса telinit [см. init(1M)] независимо от текущего уровня
выполнения. Отметим, что уровни a, b, c не могут
быть установлены, а запрос на выполнение помеченных ими процессов не меняет текущий уровень выполнения. Кроме того, подобные процессы не уничтожаются при смене уровня выполнения. Уничтожаются
они, только если соответствующие им строки содержат значение off в поле действие, если эти строки
удаляются из файла /etc/inittab, или если init переходит в однопользовательский режим.
- действие
- Ключевое слово в поле действие определяет дисциплину обработки процесса, указанного в данной строке. Программа init распознает следующие действия:
- respawn
- Если процесс не существует, то запустить его,
не ждать завершения (продолжать просмотр файла
inittab), после завершения процесса перезапустить его. Если процесс уже существует, ничего
не делать и продолжать просмотр файла inittab.
- wait
- При переходе на уровень_выполнения, совпадающий
с указанным в строке, запустить процесс и ожидать его завершения. При всех последующих просмотрах файла inittab на том же уровне выполнения игнорировать строку.
- once
- При переходе на уровень_выполнения, совпадающий
с указанным в строке, запустить процесс и не
ожидать его завершения. Когда процесс завершится, не перезапускать его. Если уровень будет
изменен в момент, когда программа еще выполняется из-за предыдущей смены уровня выполнения,
то она не перезапускается.
- boot
- Эта строка будет обработана только один раз во
время чтения init'ом файла inittab при начальной загрузке системы. Программа init запускает
процесс и не ожидает его завершения. Когда процесс завершится, он не перезапускается. Чтобы
это действие выполнялось, поле уровень_выполнения должно быть пустым или соответствовать
уровню выполнения процесса init во время загрузки системы. Спецификацией boot помечают
функции инициализации, следующие за аппаратной
загрузкой системы.
- bootwait
- Эта строка будет обработана один раз при переходе init из однопользовательского режима в
многопользовательский после загрузки системы.
(Если действие initdefault соответствует уровню
выполнения 2, то указанный в строке процесс будет запущен сразу после загрузки системы).
Программа init запускает процесс, дожидается
его завершения и после этого не перезапускает
процесс.
- powerfail
- Выполнять указанный в строке процесс только при
получении init'ом сигнала об ошибке питания
SIGPWR.
- powerwait
- Выполнять указанный в строке процесс только при
получении init'ом сигнала об ошибке питания
SIGPWR и продолжать обработку файла inittab
лишь после завершения процесса.
- off
- Если процесс, ассоциированный с данной строкой,
выполняется, ему посылается предупреждающий
сигнал SIGTERM и дается 20 секунд на завершение, после чего он принудительно терминируется
сигналом SIGKILL. Если процесс не существует,
строка игнорируется.
- ondemand
- Это действие является синонимом respawn, но используется только со значениями a, b и c в поле
уровень_выполнения.
- initdefault
- Строка, в которой указано это действие, используется только при первом обращении к процессу
init. Она определяет уровень выполнения, устанавливаемый первоначально: выбирается максимальная из цифр, указанных в поле уровень_выполнения. Если поле уровня пусто, оно рассматривается как содержащее 0123456 и, следовательно, устанавливается уровень выполнения 6. Если
в файле /etc/inittab нет строки с действием
initdefault, то начальное значение уровня выполнения запрашивается у пользователя в момент
загрузки системы.
- sysinit
- Строки этого типа выполняются перед тем, как
init попытается получить доступ к консоли (то
есть перед выводом приглашения Console login:).
Обычно подобные строки используются только для
инициализации устройств, с которых init может
попытаться запросить уровень выполнения. Команды из этих строк выполняются с ожиданием завершения.
- процесс
- Это команда shell'а, которую нужно выполнить. Перед содержимым поля вставляется exec и передается
shell'у в виде
sh -c 'exec процесс'
Тем самым в поле процесс может стоять любая конструкция, синтаксически корректная с точки зрения
shell'а. Чтобы употребить комментарий, нужно воспользоваться записью ;#комментарий.
СМ. ТАКЖЕ
exec(2), fork(2), open(2), signal(2).
sh(1), who(1) в Справочнике пользователя.
getty(1M), init(1M) в Справочнике администратора.
|
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
|
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
Новости мира IT:
- 25.07 - В России выросла популярность отечественных облачных хранилищ, хотя молодёжь предпочитает иностранные
- 25.07 - Microsoft добавила сгенерированные ИИ сводки в результаты поиска Bing
- 25.07 - Apple выпустила веб-версию своего картографического сервиса
- 23.07 - Google передумала отказываться от сторонних cookie в Chrome, но обещает повысить конфиденциальность
- 23.07 - Аудитория Telegram достигла 950 миллионов пользователей в месяц
- 23.07 - Alphabet провалила сделку по поглощению Wiz за $23 млрд — стартап счёл предложенные условия унизительными
- 23.07 - Intel признала вину в нестабильности Raptor Lake, но уже знает как всё исправить
- 18.07 - Еврокомиссия выяснит, не мешает ли конкурентам Samsung наличие ИИ-модели Gemini Nano в Galaxy S24
- 18.07 - Huawei будет внедрять искусственный интеллект в тяжёлое машиностроение
- 18.07 - В Китае создали сверхлёгкий дрон, который будет летать, пока светит Солнце
- 18.07 - Дефицит ИИ-чипов сохранится до 2026 года, прогнозируют в TSMC
- 18.07 - Google стала показывать меньше ответов ИИ в поиске после серии «странных» ответов
- 16.07 - Oppo и Ericsson подписали соглашение о перекрёстном лицензировании в сфере сетей 5G
- 16.07 - Акции Apple достигли исторического максимума благодаря ИИ
- 16.07 - Nvidia столкнулась с антимонопольным расследованием во Франции — компании грозит крупный штраф
- 16.07 - ИИ и глобальные амбиции: Аркадий Волож рассказал, чем займётся зарубежная часть «Яндекса» после разделения
- 16.07 - Разработку российской консоли оценили всего в 1 млрд рублей, но в целом денег понадобится куда больше
- 16.07 - Yandex закрыл сделку по продаже «Яндекса»
- 10.07 - Представлен релиз Firefox 128
- 10.07 - Доступна платформа OpenSilver 3.0, продолжающая развитие технологии Silverlight
Архив новостей
|
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
|
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
|
|
![](/pictures/1x1.gif) |
![](/pictures/1x1.gif) |
|