RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Linux From Scratch. Версия 6.0

Глава 7. Установка системных скриптов загрузки

7.3. Как эти стартовые скрипты работают?

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

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

0:выключение компьютера.
1:однопользовательский режим.
2:многопользовательский режим без поддержки сети.
3:многопользовательский режим с поддержкой сети.
4:зарезервирован или используется как 3.
5:то же самое, что и 4, он обычно используется для графического входа в систему (например, xdm  из X или 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. Когда обрабатывается ссылка К, то соответствующий скрипт вызывается с аргументом stop. Если же обрабатывается ссылка S, то скрипт вызывается с параметром start.

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

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

start

Запуск сервиса.

stop

Остановка сервиса.

restart

Сервис останавливается и запускается заново.

reload

Это команда для обновления настроек сервиса. Она обычно вызывается после изменения конфигурационного файла скрипта, но сервису не нужно перезапускаться.

status

Показывает, запущен ли сервис и какой у него PID.

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

Поиск

 

Найди своих коллег!