Материал просмотрен 574 раз(а)

Схема запуска сервисов в ОС RedHat (или на примере, который я рассматриваю – CentOS) можно представить в виде такой схемы (нарисовал в Word):

Схема запуска сервисов

Схема запуска сервисов

Ссылки на скрипты сервисов на последнем блоке выглядят так:

/etc/rc.d/rc.DEFAULT.d/K01сервис1 … и т.д.

Здесь K означает, что сервис с параметром stop, а S означает, что процесс с параметром start. Далее следует порядок загрузки сервисов. 01 стартует раньше 02 и т.д.

Например, нам нужно перейти с уровня выполнения 3 на 5-й уровень выполняются все скрипты каталога /etc/rc.d/rc5.d с префиксом K, а затем выполняются все скрипты с префиксом S того же каталога.

Сами скрипты сервисов располагаются в каталоге /etc/init.d/сервисN.

Конфигурационные файлы сервисов – в каталогах /etc/sysconfig/… или /etc/

Бинарные файлы сервисов соответственно в каталоге /sbin/… и /bin/

После запуска ядра Linux происходит монтирование корневой ФС и управление передается на программу upstart, выполняющую процесс /sbin/init – самый первый и самый главный процесс операционной системы. Технология upstart существенно сокращает время полной загрузки ОС, используя событийную модель запуска служб.

Далее, процесс init запускает набор скриптов запуска, расположенных в каталоге /etc/init.d (основными из которых яв-ся rcS.conf и rc.conf). На этом этапе выполняется первоначальная подготовка системы. Здесь, на этом шаге, например, запускаются драйверы поддержки RAID массива, или другие дополнительные модули ядра.

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

После выполнения всех необходимых скриптов на выбранном уровне запуска, система выполняет запуск еще нескольких скриптов, включая /etc/init/start-ttys, который подготавливает все доступные виртуальные терминалы для работы, а также скрипт prefdm.conf, который запускает графический интерфейс пользователя, если он определен для данного уровня запуска.

Вот примерно как-то так и происходит загрузка служб в ОС CentOS.