Схема запуска сервисов в ОС 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.
Comments: