The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Документация для Linux" / Оглавление документа

Как происходит загрузка с помощью этих скриптов?

Linux использует специальные возможности загрузки, называемые SysVinit. Они основаны на концепции уровней запуска (runlevels). Они могут сильно отличаться на различных системах, и мы не можем сказать что скрипты из <подставите сюда имя любого дистрибутива> будут работать на LFS. У LFS свой подход к этим скриптам, но они также соответствуют стандартам.

SysVinit (с этого момента мы будем называть его init) работает используя схему уровней запуска. Всего есть семь (от 0 до 6) уровней запуска (точнее, есть больше уровней запуска, но они предназначены для специальных целей и обычно не используются. Документация по init содержит более полную информацию по этому вопросу) man page describes those details) и каждуй из них сообщает компьютеру, что ему делать при запуске соответствующего уровня. Уровень запуска по умолчанию - 3. Вот описание разных уровней загрузки и их назначение:

0: выключение компьютера
1: однопользовательский режим
2: многопользовательский режим без поддержки сети
3: многопользовательский режим с поддержкой сети
4: зарезервирован или используется как 3
5: тоже самое, что и 4, он обычно используется для графического входа в систему (например xdm из X'ов xdm или kdm из KDE)
6: перезагрузка компьютера

Для изменения уровня запуска используется команда init <runlevel>, где <runlevel> нужный уровень запуска. Например, для перезагрузки компьютера можно использовать команду init 6. Это и делает команда reboot, а команда halt является аналогом init 0.

Есть ряд директорий в /etc/rc.d, которые выглядят как rc?.d, где ? является уровнем запуска, и rcsysinit.d, которые содержат ряд символических ссылок. Часть из них начинается с K, другие начинаются с S, затем идут две цифры уровня инициализации. K означает остановку (kill) сервиса, а S - запуск (start). Цисло означает порядок, в котором запускаются скрипты, от 00 до 99; чем меньше номер, тем раньше вызывается скрипт. Когда init переключается на другой уровень загрузки, одни сервисы останавливаются, другие запускаются.

Сами скрипты расположены в /etc/rc.d/init.d. Они проделывают всю работу, а ссылки только указывают на них. Ссылки остановки и запуска указывают на один и тот же скрипт в /etc/rc.d/init.d. Это возможно благодаря тому, что скрипты запукаются с различными параметрами, такими как start, stop, restart, reload, status. Когда обрабатывается ссылка K, то соответствующий скрипт вызывается с аргументом stop. Если же обрабатывается ссылка S, то скрипт вызывается с параметром start.

Но есть одно исключение. Ссылки, начинающиеся с S iв директориях rc0.d и rc6.d никогда не выполняются для запуска скрипта с параметром start. Они вызываются только с параметром stop для остановки чего-либо. Это понятно, потому что когда вы собираетесь перезагрузить или отключить систему, вам не надо ничего запускать, а только остановить систему.

Вот описание параметров, которые можно передавать скриптам запуска:

Вы спокойно можеде настраивать и изменять процесс загрузки (после установки вашей системы LFS). Файлы, описываемые здесь, являются только примерами и, возможно, вы сделаете их лучше.


ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList