time

Уровни инициализации в Ubuntu и CentOS

runlevel_centos_ubuntu.png

Термин уровень выполнения означает режим функционирования операционной системы компьютера, в которой реализована инициализация в стиле ОС Unix System V. Традиционно существуют семь уровней выполнения, пронумерованных от 0 до 6. Система в определенный момент времени находится на соответствующем уровне выполнения. wiki

Для запуска сервиса при старте Linux необходимо убедится, что существует необходимый сервис в папке /etc/init.d/. Пример скрипта для запуска самописного сервиса можно посмотреть в /etc/init.d/skeleton. После этого можно добавить сервис при загрузке либо создав вручную симлинк в нужном уровне запуска /etc/rcX.d/, где X может меняться от 0..6 либо с помощью утилит, приведенных ниже.

Формат именования скриптов

S[порядковый номер][имя] - имя скрипта для запуска сервиса
K[порядковый номер][имя] - имя скрипта для остановки сервиса

Порядковый номер может меняться от 1..99, чем выше порядковый номер, тем позднее запустится сервис.

После запуска всех сервисов для указанного уровня инициализации (runlevel) выполняется скрипт /etc/rc.local, который содержит пользовательские сценарии запуска.

Просмотр списка всех сервисов и их статус (работает под Ubuntu и CentOS)

service --status-all

Ubuntu

Уровни инициализации в Debian (Ubuntu)

0 - остановка
1 - однопользовательский режим
2-5 - многопользовательский режим
6 - перезагрузка

По умолчанию используется уровень 2.

В Ubuntu 9.10 и выше заменили SysV на Upstart. Теперь уровень инициализации указывается в файле /etc/init/rc-sysinit.conf.

Добавление сервиса fooservice на уровни 2,3,4,5 с помощью update-rc.d

update-rc.d -f fooservice defaults

Удаление сервиса fooservice

update-rc.d -f fooservice remove

Запуск сервиса fooservice на уровне 5 с порядковым номером 91, останавка на уровнях 1 2 3 4 6 с номером 9

update-rc.d fooservice start 91 5 . stop 09 1 2 3 4 6 .

Существуют консольные утилиты sysv-rc-conf и rcconf с удобным отображением списка сервисов на каждом runlevel

sudo apt-get install sysv-rc-conf
sudo apt-get install rcconf

GUI-приложения для управления настройками runlevels - Boot-Up Manager.

sudo apt-get install bum

В репозиториях для Ubuntu есть утилита chkconfig (популярная в мире RedHat) для управления runlevels с консоли

sudo apt-get install chkconfig

Примеры использование есть в разделе с CentOS.

Подробнее про upstart можно почитать у yakim.org.ua.

CentOS

Уровни инициализации в RedHat (CentOS)

0 - остановка
1 - однопользовательский текстовый режим
2 - не используется
3 - многопользовательский текстовый режим 
4 - не используется
5 - многопользовательский графический режим
6 - перезагрузка

По умолчанию используется уровень 3 или 5.

Уровень инициализации указывается в файле /etc/inittab.

Список всех сервисов и их состояние

chkconfig --list

Состояния сервиса httpd на всех уровнях

chkconfig --list httpd

Добавление нового сервиса

chkconfig --add httpd

Включение сервиса на уровнях 3 и 5

chkconfig httpd on --level 3,5

Отключение сервиса на всех уровнях

chkconfig httpd off

Удаление сервиса

chkconfig --del httpd

Также доступна консольная утилита ntsysv с удобным отображением списка сервисов на активном уровне, уровни переключаются с помощью ключа --level.

Список сервисов с описанием:

Дополнительное чтиво

blog comments powered by Disqus