Суббота, 20.04.2024, 02:26
Приветствую Вас Гость

SYSTEM ADMINISTRATOR

Меню
Разделы
Друзья
Реклама
Наша кнопка
Опрос
Нужен ли нам форум?
Всего ответов: 64
Главная » 2012 » Январь » 13 » Управление уровнями выполнения
12:52
Управление уровнями выполнения

Файл /etc/inittab

Уровни выполнения и сценарии запуска SysV тесно связаны между собой. При загрузке компьютер переходит на некоторый уровень выполнения. Этому уровню соответствует каталог ссылок SysV, содержащиеся в нем ссылки указывают на сценарии запуска. Мы уже знаем, что если ссылка начинается с символа "S", Linux при вызове сценария передает ему параметр start, а если имя ссылки начинается с "К", сценарию передается параметр stop. Но как Linux узнает, на какой уровень следует перейти после загрузки? Информация об этом хранится в файле /etc/inittab, часто называемом таблицей инициализации, который выполняет роль конфигурационного файла для init - первого процесса, выполняющегося в системе. Процесс init является родительским для всех остальных процессов в системе. В процессе работы команда init анализирует конфигурационный файл /etc/inittab, выполняет сценарии из файлов, содержащихся в каталоге /etc/rc.d, в соответствии с режимом работы, заданным по умолчанию или затребованным администратором.

Записи файла /etc/inittab имеют следующий формат:

идентификатор:уровни_выполнения_действие:процесс

В поле идентификатор может быть от 0 до 4 символов. В поле уровни_выполнения перечисляются номера уровней, к которым относится запись. Если уровни не заданы - запись относится ко всем уровням. В поле действие указывается, как трактовать поле процесс. Возможные значения поля действие таковы:

Значение Ждать? Интерпретация
initdefault - Задает исходный уровень исполнения
boot Нет Процесс запускается при первом чтении файла inittab
bootwait Да Процесс запускается при первом чтении файла inittab
ctrlaltdel Нет Процесс запускается в ответ на нажатие клавиш Ctrl+Alt+Delete
once Нет Процесс запускается однократно
wait Да Процесс запускается однократно
respawn Нет Процесс постоянно поддерживается в рабочем состоянии
powerfail Нет Процесс запускается при получении демоном init сигнала сбоя питания
powerwait Да Процесс запускается при получении демоном init сигнала сбоя питания
sysinit Да Процесс запускается перед обращением к консоли

Если одно из значений в поле уровни выполнения совпадает с номером текущего уровня, а значение поля действие свидетельствует об актуальности записи, то демон init с помощью интерпретатора выполняет команду, заданную в поле процесс (или прекращает выполнение). В столбце "Ждать?" указано, в каких случаях демон init ожидает завершения команды, прежде чем продолжить работу

Итак, в первой строке ( id:5:initdefault: ) нашего файла inittab указывается, что по умолчанию система будет вводиться в уровень исполнения 5.

Следующая незакомментированная строка (si::sysinit:/etc/rc.d/rc.sysinit) определяет запуск файла rc.sysinit, назначение которого будет описано ниже.

Следующие восемь строчек определяют местонахождение скриптов запуска для различных уровней исполнения.

ca::ctrlaltdel:/sbin/shutdown -t3 -r now - определяет, что на нажатие Ctrl+Alt+Delete система должна будет остановиться.

Далее в двух строчках описана реакция системы на получение сигнала об отсутствии основного питания и наличии только резервного, и реакция на то, что основное питание восстановлено.

В строках, пронумерованных от 1 до 6, определяется, на каких уровнях и какое количество текстовых терминалов запускается. Они будут доступны по нажатию клавиш Alt+F1, Alt+F2 и т.д.

Последней строкой определяется, какой процесс следует запустить только на 5 уровне исполнения.

Остановимся подробнее на уровнях исполнения:

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

После анализа файла inittab демон init вводит систему в уровень исполнения, указанный по умолчанию (в случае, если самому ядру не был передан сигнал о загрузке в однопользовательском режиме)

Уровни 0, 1 и 6 имеют специальное назначение. Уровень 0 соответствует завершению работы системы, уровень 1 - однопользовательскому режиму, а уровень 6 - перезагрузке системы. В случае, если Вы установите в качестве уровня по умолчанию уровень 0 или 6 - после загрузки работа системы будет завершена либо компьютер начнет перезагружаться!

Уровни 2-5 задают нормальные режимы работы; назначение каждого из уровней может изменяться в зависимости от версии системы. В Red Hat - системах назначение уровней таково:

Runlevel 0: /etc/rc.d/rc0.d

Этот режим работы предусматривает последовательное выполнение останова системы. Каждый сценарий выполняется в указанном порядке. В число выполняемых задач входит:

    - Уничтожение всех процессов
    - Выключение свопинга файла виртуальной памяти
    - Размонтирование раздела подкачки и смонтированных файловых систем

Во время останова выполняются ряд важных действий, необходимых для останова служб, размонтирования файловых систем и выключения или перезагрузки аппаратной части компьютера. Linux — надежная операционная система, обеспечивающая проверку файловых систем в случае необходимости, вот почему корректное выполнение останова является необходимым условием для поддержания целостности данных на любых томах или разделах Linux.

Runlevel 1: /etc/rc.d/rc1.d

Режим работы 1 представляет собой однопользовательский режим. Это административное состояние системы, традиционно используемое системными администраторами для проведения регламентных работ и обновления программного обеспечения. Никто, кроме администратора, не должен зарегистрироваться в этом режиме, сеть отключена, необходимые файловые системы смонтированы. (Другие файловые системы могут быть смонтированы вручную из командной строки, но затем перед перезагрузкой они должны быть размонтированы.)

Runlevel S

Режим работы S представляет собой дополнение к однопользовательскому режиму, необходимое для того, чтобы проводить процедуру авторизации суперпользователя перед переходом системы на уровень 1.

Runlevel 2: /etc/rc.d/rc2.d

Режим работы 2 — это многопользовательское состояние. Работа в сети разрешена, система NFS (служба совместного использования удаленных файлов) отключена. Этот уровень исполнения может понадобиться в том случае, когда Red Hat Linux применяется исключительно как автономная настольная операционная система для персонального компьютера.

Runlevel 3: /etc/rc.d/rc3.d

Режим работы 3, наряду с режимом 5, часто используется в качестве режима работы, заданного по умолчанию; поэтому, в ранних версиях дистрибутивов, он указывается в первой строке /etc/inittab. Однако в более новых дистрибутивах Red Hat Linux в качестве значения по умолчанию используется режим работы 5, что позволяет загрузиться и сразу же перейти к системе X Window для регистрации. Отличие данного режима от режима 2 - в поддержке NFS

Runlevel 4: /etc/rc.d/rc4.d

Режим работы 4 установлен так, что пользователь может самостоятельно настроить свой режим работы (в действительности он в точности копирует установки для режима работы 5). Обратите внимание, что в /etc/inittab, режим 4 отмечен как "неиспользуемый". Как и в других версиях UNIX, он предусмотрен на тот случай, если возникает необходимость определить собственный режим работы. Тогда в установках этого режима можно изменять соответствующие ссылки, указывая по своему усмотрению запуск/останов тех или иных служб.

Runlevel 5: /etc/rc.d/rc5.d

Режим работы 5 задается по умолчанию при загрузке современных дистрибутивов с диспетчером окон X11. Многие сетевые службы также разрешены по умолчанию.

Runlevel 6: /etc/rc.d/rc6.d

Режим работы 6 предназначен для перезагрузки. Этот каталог содержит связи, аналогичные применяемым в режиме работы 0, но логика сценария останова, размещенного в init.d, определяет, то ли система будет остановлена, то ли перегружена.

Узнать текущий уровень исполнения позволяет команда runlevel. Если вы хотите временно изменить уровень выполнения, сделайте это с помощью команды telinit (в некоторых системах для этого приходится вызывать init).

Параметр, передаваемый telinit, задает уровень выполнения. Для указания уровня используется один символ. Результаты, которые вы получите, задавая в качестве этого параметра число, очевидны. Кроме того, вы можете передать программе другие символы. Их назначение описано ниже.

a, b или с. Некоторые записи в файле /etc/inittab идентифицируются с помощью символов a, b и с. Эти символы имеют специальное назначение. Если вы передадите один из них telinit, программа будет обрабатывать соответствующие ему записи /etc/inittab; при этом уровень выполнения системы не изменится.

Q или q. Если задать одно из этих значений как уровень выполнения, telinit повторно считает содержимое файла /etc/inittab и продолжит работу с учетом внесенных изменений.

S, или s. Эта опция переводит систему в однопользовательский режим.

U, или u. Данная опция вызывает перезагрузку процесса init; при этом новое содержимое файла /etc/inittab не считывается.

Зачем может понадобиться переходить на другой уровень выполнения? Изменяя уровень выполнения по умолчанию, вы можете изменять набор серверов, работающих в системе. В большинстве дистрибутивных пакетов самым важным считается сервер X Window. Одна из последних записей в файле /etc/inittab управляет запуском этого сервера; в некоторых системах эта задача решается с помощью сценариев запуска SysV. Изменение уровня выполнения позволяет быстро перейти от одного набора сервера к другому, разрешить или запретить графический режим или временно отключить X Window.

Одним из наиболее важных сценариев в /etc/inittab является rc.sysinit — сценарий инициализации системы. Когда команда init интерпретирует /etc/inittab, она в первую очередь отыскивает и выполняет сценарий rc.sysinit. В этом состоит отличие Red Hat Linux от других версий UNIX, в которых команды инициализации системы могут включаться непосредственно в файл /etc/inittab.

Однако сценарий sysinit Red Hat Linux, как и в других версиях UNIX, выполняет некоторые или даже все нижеприведенные функции:

    • Устанавливает некоторые начальные переменные $РАТН
    • Настраивает работу сети
    • Устанавливает системное время
    • Запускает раскладку клавиатуры и системные шрифты
    • Запускает страничный обмен для виртуальной памяти
    • Инициирует контроллер USB и средства обеспечения
    • Проверяет корневую файловую систему на необходимость восстановления
    • Перемонтирует корневую файловую систему для чтения и записи
    • Проверяет файловые системы на необходимость восстановления
    • Устанавливает устройства Plug-and-Play
    • Очищает таблицу смонтированных файловых систем /etc/mtab
    • Вводит в mtab запись о корневой файловой системе
    • Включает механизмы оптимизации жесткого диска
    • Активирует механизм квот для пользователей и групп
    • Проверяет квоты
    • Устанавливает системное имя хоста
    • Подготавливает систему для загрузки модулей
    • Отыскивает зависимости между модулями
    • Загружает звуковые модули
    • Добавляет устройства RAID, монтирует все остальные файловые системы
    • Очищает файлы /etc: /etc/mtab, /etc/fastboot и /etc/nologin
    • Удаляет файлы блокировки UUCP
    • Удаляет неактуальные файлы подсистем
    • Удаляет неактуальные файлы pid
    • Инициализирует последовательные порты
    • Устанавливает SCSI-стример (если он присутствует в системе)
    и другие....

Первый сценарий выполняет большой объем работы, но это лишь один из целого ряда этапов, необходимых для запуска системы. Вы уже узнали, что команда init выполняется только после загрузки ядра Linux. После того как команда init выполнит сценарий rc.sysinit, она запускает rc.local. Здесь могут быть внесены нами какие-либо команды, которые должны выполняться при загрузке системы.

Категория: *nix | Просмотров: 1326 | Добавил: AinCross | Теги: inittab, Nix, уровняb выполнения | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Регистрация
Поиск
Пользовательский поиск
Реклама
Архив записей
Календарь
«  Январь 2012  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Считалки
Яндекс.Метрика

Онлайн всего: 1
Гостей: 1
Пользователей: 0