Настройка и работа в Linux


              

Initetc - часть 4


/p>

Вообще-то, на все основные конфигурационные файлы существуют man-страницы. Но в данном случае достаточно знать, что каждая строка файла (не считая комментариев, разумеется) имеет следующий формат:

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

Файл разбит на секции условно, исключительно для удобства нашего анализа. Первое, что обращает на себя внимание, – присвоение графическому режиму разных уровней выполнения (секция 1). Как ни странно, но за этим ничего не стоит и стили загрузки тут ни при чём. Просто данная привязка не регламентирована – очередной пример ничем не ограниченного разнообразия.

Вторая секция определяет уровень выполнения по умолчанию. Сменив цифру в позиции «уровни выполнения» с 3 (многопользовательский консольный режим) на 4 (для Slackware) или 5 (для RedHat), вы заставите систему стартовать сразу в графическом режиме. Позиция «действие», в данном случае, совершенно очевидна. Цифр может быть несколько; определяющей будет старшая. Пустое значение заставит init запросить уровень выполнения в ходе загрузки

Третья секция (действие – sysinit) запускает скрипт, выполняемый вне зависимости от запрошенного уровня. «S» (single user) в позиции «уровни выполнения» у Slackware и отсутствие значения в той же позиции у RedHat значения не имеют: в момент загрузки скрипт будет выполнен однократно в любом случае. А вот различие в именах скриптов примечательно: rc.S – первый из скриптов с именем, соответствующим соглашениям BSD-стиля – все они начинаются символами «rc.».

Активизировав виртуальную память (swap), смонтировав файловые системы, инициализировав Plug and Play устройства, загрузив модули ядра и выполнив ряд других операций, необходимых для работы на любом из уровней выполнения, init переходит к выполнению уровень-специфичных скриптов. Вызовы этих скриптов и составляют четвёртую секцию, и именно в них заключается главное отличие стилей загрузки. Для BSD-стиля, как мы видим, характерно наличие отдельного скрипта для каждого из уровней выполнения. Кроме rc.0 и rc.6, отвечающих, как нетрудно догадаться, соответственно за остановку и перезагрузку системы, скрипты rc.K и rc.M обеспечивают соответственно одно- и многопользовательский уровни выполнения. Совершенно иной алгоритм у загрузки SysV-стиля. Здесь на каждом из уровней требуется выполнение целого ряда скриптов, находящихся в подкаталогах rc0.d ... rc6.d. Подкаталоги эти содержат на самом деле лишь символические ссылки на реальные скрипты, находящиеся, в свою очередь, в подкаталоге init.d. Каждый из этих скриптов способен выполнять, как минимум, две операции – запуск и останов своего сервиса. Которая из операций будет вызвана, определяется первой буквой имени символической ссылки: «S» – для запускающих симлинков, «K» – для останавливающих. Цифры в имени определяют порядок запусков/остановов. Ух… Чем-то напоминает путь к «инфарктгенерирующей» игле Кощея Бессмертного. Но в гибкости этой системе не откажешь. Необходимость менять состав и имена симлинков случается крайне редко – обычно с этой задачей прекрасно справляется консольная ntsysv со всеми её графическими потомками. Однако случается. Как, например, в описанном случае включения на ноутбуке сетевой поддержки до инициализации pcmcia. Действие «wait» означает в данном случае необходимость для init ждать окончания запускаемого в данной строке процесса.




Содержание  Назад  Вперед