|
INIT(7)НАЗВАНИЕ СИНТАКСИС /etc/init /etc/inir ОПИСАНИЕ init создает процесс для каждого терминала, в который может войти пользователь. Он начинается с открытия консольного усторйства /dev/console для считывания и записи. Затем он вызывает командный процессор, требующий пароль для запуска системы в режиме обслуживания. Так как при этом считывается файл EOF, система входит в "многопользовательский режим". Если вводится корневой пароль, командный процессор стартуется и подключается к консоле. Когда этот процессор выключается, система переходит к "многопользовательскому режиму". Если система будет автоматически загружена во время начальной загрузки, init будет автоматически передан -a флаг при старте. init также передает этот флаг программам, которые она выполняет, с тем, чтобы они могли выбрать различное поведение при условиях autoboot(8). Пользователь может использовать команду boot, и файловая система может быть загрязнена. В этом случае 2inir 0 приглашает пользователя, спрашивающего, где выполнять fsck (8). (Смотри более подробно fsck (8).) Пользователь может использовать boot, и файловая система может быть чистой. В этом случае inir считывает команды из файла /etc/rc. Это выполняется с помощью процедур "multi-user/rc" и "getty/login", описанных ниже. "multi-user/rc" procedure: Как только файловая система становится чистой, командный процессор завершает свою работу, и init выполняет несколько шагов для того чтобы начать обычное действие. Она вызывает процессор и считывает команды в /etc/ttys файле. Этот командный файл выполняет служебные задачи, такие как удаление временных файлов, монтирование файловых систем и запуск демонов. Затем он читает /etc/ttys файл и делит на несколько частей для того, чтобы начать процесс для каждого терминального устройства в файле. Каждая строка в /etc /ttys печатает состояние строки (0 для закрытой и 1 для открытой), режим строки и последовательную строку (смотри ttys (3)). Каждый процесс открывает соответственную последовательную строку для чтения и записи, присваивая файловые дискрипторы 0 , 1 и 2 сторке и устанавливая ее как стандартные файлы ввода, вывода и ошибок. Если последовательная строка связана с модемом, процесс задерживает открытие строки до тех пор, пока кто-нибудь не вызовет ее, и в этой строке не осуществится передача. "getty/login" procedure: Как только init открывает строку, она выполняет программу getty, передавая режим строки в качестве аргумента. Программа getty читает имя файла и вызывает login(1) для завершения входного процесса (детально смотри getty(M7)). init ждет до тех пор, пока пользователь не выйдет из системы, печатая конец файла ASCII (Ctrl-D) или зависая. В ответ он вызывает и удаляет предыдущий ввод пользователей из файла utmp, и входит в файл wtmp, который хранит информацию о вводах и выводах. Затем соответствующая строка еще раз открывается, а getty еще раз вызывается. init имеет последовательные ответы при зависании, прерывании и сигналах окончания. По сигналу зависания SIGHUP программа init вызывает изменения системы от режима нормальной работы к режиму обслуживания. По сигналу прерывания SIGINT init повторно считывает файл ttys, чтобы открыть какие-либо новые строки и закрыть строки, которые были ранее удалены. По сигналу окончания SIGQUIT программа init запрещает любые дальнейшие вводы. В общем случае, эти сигналы оказывают серьезное влияние на систему и не должны использоваться неопытными пользователями. Вместо этого, аналогичные функции могут с безопасностью быть выполнены с помощью команд enable(1), disable(1) и shutdown(8). ФАЙЛЫ /dev/tty* /etc/utmp /usr/adm/wtmp /etc/default/boot /etc/ttys /etc/rc /etc/gettydefs СМ. ТАКЖЕ ДИАГНОСТИКА ПРИМЕЧАНИЯ Для пользователей, хорошо знакомых с подходом telenit к администратору терминала, предполагается inittab. Для большей информации смотри telenit(8) и inittab(3). |
|