Чтение онлайн

на главную - закладки

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

Сценарий, помеченный действием sysinit, выполняется во время запуска системы, однократно, вне зависимости от запрошенного уровня. Затем запускаются процессы, помеченные действиями boot и bootwait.

На данном этапе загрузки системы происходят следующие действия по инициализации, результат которых необходим на любом уровне выполнения:

1. Устанавливается имя машины (hostname).

2. Конфигурируются параметры ядра.

3. Устанавливаются раскладка клавиш и системный шрифт,

4. Активируются разделы подкачки.

5. Корневая система проверяется программой fsck. Если будут найдены ошибки, которые невозможно исправить автоматически, будет запрошен пароль администратора для входа в административный режим, что равноценно переходу на уровень выполнения 1. В этом режиме вы запустите программу fsck с аргументом «/», который означает проверку корневой файловой системы. После исправления всех ошибок введите команду

exit
для перезагрузки системы. Если программа fsck ошибок не обнаружила, файловая система монтируется в режиме чтение/запись.

6. Проверяются зависимости модулей ядра.

7. Выполняется проверка других файловых систем.

8. Монтируются локальные файловые системы.

9. Включаются квоты.

10. Подключается (не активизируется!) раздел подкачки. С этого момента система начинает использовать раздел подкачки.

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

В процессе развития UNIX-подобных ОС выделились две основных системы инициализации (набора сценариев загрузки). Одна была разработана в рамках ОС BSD (Berkeley Software Distribution) Калифорнийского университета, от которой произошли бесплатная FreeBSD и коммерческая SunOS. Другая применяется в классической System V от AT&T и ее потомках, среди которых UnixWare, IRIX, HP-UX и Solaris. ОС Linux заимствовала удачные решения с обеих эволюционных ветвей, и в результате часть дистрибутивов следует в инициализации стилю BSD (Slackware, CRUX, Gentoo), а часть (Red Hat-подобные) — стилю System V.

Инициализация в стиле BSD

Для этого стиля характерно наличие конфигурационного файла стартовых сценариев

/etc/rc.conf
. Уровней выполнения как таковых в BSD и ориентированных на нее реализациях Linux нет, вместо них вводится понятие режима — группы процессов, объединенных общей функциональностью. Режимов обычно два: однопользовательский и многопользовательский. Каждый режим запускается своим сценарием. Файлы этих сценариев обычно находятся в
/etc
и называются
rc.*
(рис. 9.1).

Рис. 9.1. Порядок инициализации в стиле BSD

В дистрибутиве Slackware этим сценариям присвоены имена:

♦ 

rc.S
— сценарий запуска (действие sysinit);

♦ 

rc.0
— останов системы;

♦ 

rc.6
— перезагрузка;

♦ 

rc.K
— однопользовательский режим;

♦ 

rc.M
— многопользовательский текстовый режим;

♦ 

rc.4
— многопользовательский режим с графическим входом в систему.

В

/etc/default/rc.conf
хранятся в неизменном хорошо откомментированном виде все системные настройки в количестве нескольких сотен, а редактируемый администратором
/etc/rc.conf
содержит только отличия желаемой конфигурации системы от
/etc/defaults/rc.conf
, которых раз в десять меньше. Загрузочные сценарии режимов прочитывают оба эти файла и и зависимости от требуемой конфигурации могут запускать из-под себя дополнительные сценарии инициализации различных служб:
rc.inetd*
,
rc.cdrom
и т.п. Последним при загрузке выполняется сценарий
rc.local
, содержание которого определяется администратором конкретной системы.

Инициализация в стиле System V

В этом стиле каждому уровню выполнения соответствует целый каталог, все сценарии в котором выполняются при переключении на этот уровень. Это подкаталоги

/etc
с именами
rc0.d
,
rc1.d
, …,
rc6.d
. Сценарии в этих каталогах — файлы с именами вроде S12syslog или K95kudzu — только символические ссылки на настоящие сценарии, находящиеся в
/etc/init.d
. Каждый из настоящих сценариев, будучи вызван с аргументом start, запускает свою службу, а с аргументом stop — останавливает ее. Какой аргумент будет ему передан, зависит от первой буквы имени символической ссылки: S означает start, K (kill) — stop. Следующее за этой буквой число определяет порядок вызова настоящих сценариев: чем оно больше, тем позже срабатывает данная ссылка при включении текущего уровня. Сначала выполняются все сценарии останова процессов, не разрешенных на данном уровне, потом — все сценарии запуска (рис. 9.2).

Рис. 9.2. Порядок инициализации в стиле System V

Переключением уровней выполнения занимается центральный сценарий

/etc/rc
. Вызванный с аргументом N, где N — это номер включаемого уровня, он ищет каталог
/etc/rc.N
и выполняет в нем сначала все стоп-сценарии, потом все старт-сценарии.

Для выбора демонов, которые будут запускаться автоматически при загрузке системы, обычно используют конфигуратор drakconf в операционной системе Linux Mandrake, system-config-services в Fedora Core (рис.9.3) или setup в других Red Hat-подобных дистрибутивах.

Рис. 9.3. Конфигуратор служб system-config-services

Чтобы обеспечить автоматический запуск какого-нибудь сервиса, нужно создать сценарий для его запуска и поместить его в каталоге /etc/init.d. Затем, в зависимости от уровня выполнения, в каталоге /etc/rcN.d нужно создать символические ссылки на этот сценарий для его запуска и останова.

Если вы хотите сами создать сценарий для запуска своего демона, можете воспользоваться шаблоном, приведенным в листинге 9.3.

Листинг 9.3. Шаблон для запуска демона

#!/bin/bash

#

# Подключаем библиотеку функций

. /etc/init.d/functions

#

# Определяем параметры

case "$!" in

start)

 # Запуск демона

 echo "Starting my_daemon..."

 daemon my_daemon

 touch /var/lock/subsys/my_daemon

Поделиться:
Популярные книги

Мой муж – чудовище! Изгнанная жена дракона

Терин Рем
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мой муж – чудовище! Изгнанная жена дракона

Моров. Том 3

Кощеев Владимир
2. Моров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Моров. Том 3

Газлайтер. Том 17

Володин Григорий Григорьевич
17. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 17

Маверик

Астахов Евгений Евгеньевич
4. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Маверик

Моров. Том 8

Кощеев Владимир
7. Моров
Фантастика:
альтернативная история
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Моров. Том 8

Как я строил магическую империю 14

Зубов Константин
14. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 14

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

Лекарь Империи 10

Карелин Сергей Витальевич
10. Лекарь Империи
Фантастика:
городское фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 10

Мое ускорение

Иванов Дмитрий
5. Девяностые
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Мое ускорение

Я все еще не царь. Книга XXVI

Дрейк Сириус
26. Дорогой барон!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Я все еще не царь. Книга XXVI

Кодекс Охотника. Книга XXXIX

Сапфир Олег
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIX

Как я строил магическую империю 15

Зубов Константин
15. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 15

Точка Бифуркации V

Смит Дейлор
5. ТБ
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Точка Бифуркации V

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13