Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Уровни работы

Пред. 

Глава 11. Загрузочные файлы: init sysv

 След.


Уровни работы

Все файлы, связанные с запуском системы, находятся в каталоге /etc/rc.d. Вот список его файлов:

$ ls /etc/rc.d
init.d/  rc0.d/  rc2.d/  rc4.d/  rc6.d/            rc.local*    rc.sysinit*
rc*      rc1.d/  rc3.d/  rc5.d/  rc.alsa_default*  rc.modules*

Как уже было отмечено, rc.sysinit - это первый файл, запускаемый системой. Он отвечает за установку базовой конфигурации машины: тип клавиатуры, конфигурация определенных устройств, проверка файловой системы и т.п.

Затем запускается скрипт rc с нужным номером уровня работы в качестве аргумента. Как мы уже видели, уровень работы - это простое целое число, и для каждого из определенных уровней работы <x> должен быть соответствующий каталог rc<x>.d. В обычной установке Mandrakelinux вы могли поэтому увидеть, что существует 6 уровней работы:

  • 0: полная остановка машины;
  • 1: однопользовательский режим. Используется в случае возникновения серьезных проблем или для восстановления системы.
  • 2: многопользовательский режим без поддержки сети.
  • 3: многопользовательский режим с поддержкой сети.
  • 4: неиспользуемый.
  • 5: 3-го аналог уровня работы, но запускается графический интерфейс для входа в систему.
  • 6: перезагрузка.

Давайте взглянем на содержимое каталога rc5.d:

$ ls rc5.d
K15postgresql@  K60atd@      S15netfs@   S60lpd@        S90xfs@
K20nfs@         K96pcmcia@   S20random@  S60nfs@        S99linuxconf@
K20rstatd@      S05apmd@     S30syslog@  S66yppasswdd@  S99local@
K20rusersd@     S10network@  S40crond@   S75keytable@
K20rwhod@       S11portmap@  S50inet@    S85gpm@
K30sendmail@    S12ypserv@   S55named@   S85httpd@
K35smb@         S13ypbind@   S55routed@  S85sound@

Как видите, все файлы в этом каталоге являются символическими ссылками, и все они имеют весьма специфический вид. Их общий вид такой:

<S|K><порядок><имя_службы>

S (от слова Start) означает запуск службы, а K (от слова Kill) означает остановку службы. Скрипты запускаются в порядке возрастания номеров, а если два скрипта имеют одинаковый номер, тогда применяется прямой алфавитный порядок. Мы также видим, что каждая символическая ссылка указывает на определенный скрипт, находящийся в каталоге /etc/rc.d/init.d (за исключением скрипта local, который отвечает за управление особой службой.)

Когда система переходит на заданный уровень работы, она стартует путем запускания по порядку ссылок K: команда rc ищет, куда указывает ссылка, затем вызывает соответствующий скрипт с одним аргументом stop. Затем она запускает скрипты S, используя такой же метод, за исключением тех скриптов, которые вызваны с аргументом start.

Итак, не рассматривая всех скриптов, мы можем увидеть, что когда система переходит на 5-й уровень работы, она сначала запускает команду K15postgresql (т.е. /etc/rc.d/init.d/postgresql stop). Затем K20nfs, затем K20rstatd, и так далее до последней команды. Далее она запускает все скрипты S: сначала S05apmd, который в свою очередь вызывает /etc/rc.d/init.d/apmd start, и так далее.

Вооружившись этой информацией, вы за несколько минут сможете создать свой собственный уровень работы (задействовав, например, 4-й), или предотвратить запуск или остановку службы, удалив соответствующую символическую ссылку. Для этого вы также можете воспользоваться программами с интерфейсом, в особенности drakxservices (см. DrakXServices: Configuring Start-Up Services в Стартовое руководство???) или chkconfig для настройки в текстовом режиме.

[Tip]

Подсказка

Вы также можете воспользоваться командой chkconfig для вывода списка, добавления или удаления служб из определенного уровня работы. Смотрите chkconfig(8).


Пред. 

Уровень выше

 След.

Вначале был init 

Начало

 Часть III. Продвинутое использование