Система Linux унаследовала от UNIX-подобных операционных систем идею уровней запуска или выполнения, определяющих сервисы, постоянно выполняющиеся в системе. В табл. 18.1 приведены стандартные определения для ОС Linux.
Уровень запуска | Описание |
---|---|
0 | Halt. Применяется как логическое состояние, к которому следует перейти при остановке системы |
1 | Однопользовательский режим. Каталоги, отличающиеся от / (корневой), могут не монтироваться, и сетевой поддержки не будет. Обычно применяется для обслуживания системы |
2 | Многопользовательский режим, но без сетевой поддержки |
3 | Обычный многопользовательский режим с сетевой поддержкой, использующий экран регистрации в текстовом режиме |
4 | Зарезервирован |
5 | Обычный многопользовательский режим с сетевой поддержкой, использующий экран регистрации в графическом режиме |
6 | Псевдоуровень, применяемый для перезагрузки |
Стандарт LSB приводит эти уровни, но не требует их обязательного использования, хотя они и очень распространены.
Сопровождает уровни запуска набор сценариев инициализации, применяемых для запуска, останова и повторного запуска сервисов. В прошлом они хранились в разных местах в каталоге /etc, часто в /etc/init.d или в /etc/rc.d/init.d. Подобное разнообразие часто было причиной путаницы, поскольку пользователи, менявшие дистрибутивы, не могли найти сценарии инициализации в привычных местах, и установка программ завершалась аварийно при попытке выполнить сценарий инициализации из неверного каталога.
Стандарт LSB 3.1 определяет каталог /etc/init.d, как место хранения сценариев инициализации, но при этом разрешает этому каталогу быть ссылкой на другое место в системе.
У каждого сценария в каталоге /etc/init.d есть имя, связанное с предоставляемым им сервисом. Поскольку все сервисы ОС Linux должны совместно использовать одно пространство имен, важно, чтобы эти имена были уникальны. Например, жизнь будет несладкой, если сервисы MySQL и PostgreSQL решат назвать свои сценарии "database". Для устранения такого конфликта существует еще один набор стандартов. Это стандарт Assigned Names And Numbers Authority (LANANА, орган назначения имен и номеров в Linux), который можно найти на Web-сайте http://www.lanana.org/. К счастью, вам понадобится знать очень немногое об этом стандарте, за исключением того, что в нем хранится список зарегистрированных имен сценариев и пакетов, облегчающий жизнь пользователям систем Linux.
Сценарий инициализации должен принимать параметр, управляющий его действиями. В стандарте определены параметры, перечисленные в табл. 18.2.
Параметр | Значение |
---|---|
start | Запускает (или перезапускает) сервис |
stop | Останавливает сервис |
restart | Перезапускает сервис; обычно реализован как простой останов сервиса, за которым следует запуск этого сервиса |
reload | Переустанавливает сервис, повторно загружая параметры без реальной остановки сервиса. Этот вариант поддерживают не все сервисы, поэтому данный параметр может быть недоступен в некоторых сценариях, а если доступен, то не имеет эффекта |
force-reload | Пытается вызвать переустановку, если сервис ее поддерживает, если нет — выполняет перезапуск сервиса |
status | Выводит текстовое сообщение о состоянии сервиса и возвращает код состояния, который может применяться для определения состояния сервиса |
Все команды возвращают 0 в случае успешного завершения или код ошибки, обозначающий причину аварийного исхода. В случае параметра status
возвращается 0, если сервис выполняется; все остальные коды означают, что сервис не запущен по какой-то причине.
Стандарт устройства файловой системы