Термин уровень выполнения означает режим функционирования операционной системы компьютера, в которой реализована инициализация в стиле ОС 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.
Список сервисов с описанием:
Дополнительное чтиво