пятница, 2 апреля 2010 г.

Порядок загрузки linux

После загрузки ядра читается файл /etc/inittab. В нем указывается уровень загрузки по умолчанию (уровень загрузки для большинства операционных систем свой).
id:3:initdefault:
TO KNOW: командой init 6 можно перезагрузить сервер
В /etc/inittab указываются скрипты или папки, которые запускаются при загрузке соответствующего уровня:
l3:3:wait:/etc/rc.d/rc 3
Для того, что бы добавить что-то в автозагрузку необходимо:
1. Написать скрипт и поместить его в /etc/init.d, дать ему необходимые привелегии
2. Поместить его через symlink в /etc/rc.d на необходимый уровень и на необходимое действие.
Если в заголовке скрипта прописано
# chkconfig: 35 99 10
# description: Description here

то можно воспользоваться командой /sbin/chkconfig --add ИМЯ_СКРИПТА, которая добавит сервис автоматически.
  • 35 -- на уровнях 3 и 5 сервис будет запускаться, на остальных останавливаться.
  • 99 -- сервис будет запукаться где-то в конце
  • 10 -- сервис будет останавливаться одним из первых.

В результате, для файла dbora, получим сформированные симлинки:
/etc/rc.d/rc0.d/K10dbora
/etc/rc.d/rc1.d/K10dbora
/etc/rc.d/rc2.d/K10dbora
/etc/rc.d/rc3.d/S99dbora
/etc/rc.d/rc4.d/K10dbora
/etc/rc.d/rc5.d/S99dbora
/etc/rc.d/rc6.d/K10dbora
К -- запуск для останова сервиса, dbora stop, S -- запуск сервиса dbora start. Скрипты выполняются по порядку нумерации, если хотим, что бы скрипт выполнился в начале, присваем ему номер поменьше.

Также можно поместить вызов скрипта в /etc/rc.d/rc.local (или /etc/rc.local, что одно и то же). Скрипт выполняется один раз, до логина. Скрипт выполняется после всех инициализационных скриптов, но до окна логина.
Некоторые дистрибутивы линукса могут не запускать этот файл.

Комментариев нет: