Поиск по сайту:

Что такое «уровни запуска» в Linux?


Когда система Linux загружается, она переходит на уровень выполнения по умолчанию и запускает сценарии запуска, связанные с этим уровнем выполнения. Вы также можете переключаться между уровнями запуска — например, есть уровень запуска, предназначенный для операций восстановления и обслуживания.

Традиционно в Linux использовались сценарии инициализации в стиле System V — хотя новые системы инициализации в конечном итоге устареют традиционные уровни запуска, они еще не устарели. Например, система Ubuntu Upstart по-прежнему использует традиционные сценарии в стиле System V.

Что такое уровень запуска?

Когда система Linux загружается, она запускает процессы init. init отвечает за запуск других процессов в системе. Например, когда вы запускаете свой Linux-компьютер, ядро запускает init, и init выполняет сценарии запуска для инициализации вашего оборудования, запуска сети, запуска вашего графического рабочего стола.

Однако init выполняет не один-единственный набор сценариев запуска. Существует несколько уровней запуска со своими собственными сценариями запуска — например, один уровень запуска может вызывать сеть и запускать графический рабочий стол, а другой уровень запуска может оставлять сеть отключенной и пропускать графический рабочий стол. Это означает, что вы можете перейти из «графического режима рабочего стола» в «режим текстовой консоли без сети» с помощью одной команды, не запуская и не останавливая различные службы вручную.

В частности, init запускает сценарии, расположенные в определенном каталоге, соответствующем уровню выполнения. Например, когда вы переходите на уровень запуска 3 в Ubuntu, init запускает сценарии, расположенные в каталоге /etc/rc3.d.

По крайней мере, так это работает с традиционной системой инициализации System V — дистрибутивы Linux начинают заменять старую систему инициализации System V. Хотя Upstart в Ubuntu в настоящее время поддерживает совместимость со сценариями инициализации SysV, это, вероятно, изменится в будущем.

Уровни выполнения

Некоторые уровни запуска являются стандартными для разных дистрибутивов Linux, в то время как некоторые уровни выполнения различаются от дистрибутива к дистрибутиву.

Следующие уровни выполнения являются стандартными:

  • 0 – Остановить (выключает систему.)
  • 1 — Однопользовательский режим (система загружается в режиме суперпользователя без запуска демонов или сети. Идеально подходит для загрузки в среду восстановления или диагностики.)
  • 6 – Перезагрузить

Уровни выполнения 2–5 различаются в зависимости от дистрибутива. Например, в Ubuntu и Debian уровни запуска 2–5 одинаковы и обеспечивают полноценный многопользовательский режим с сетевым и графическим входом в систему. В Fedora и Red Hat уровень запуска 2 обеспечивает многопользовательский режим без сети (только вход через консоль), уровень выполнения 3 обеспечивает многопользовательский режим с подключением к сети (только вход через консоль), уровень запуска 4 не используется, а уровень выполнения 5 обеспечивает многопользовательский режим с сетевой и графический вход.

Переключение на другой уровень выполнения

Чтобы переключиться на другой уровень запуска, когда система уже запущена, используйте следующую команду:

судо телинит #

Замените # на номер уровня запуска, на который вы хотите переключиться. Опустите sudo и запустите команду от имени пользователя root, если вы используете дистрибутив, который не использует sudo.

Загрузка непосредственно на определенный уровень запуска

Вы можете выбрать уровень выполнения для загрузки из загрузчика — например, Grub. В начале процесса загрузки нажмите клавишу для доступа к Grub, выберите загрузочную запись и нажмите e, чтобы отредактировать ее.

Вы можете добавить single в конец строки linux, чтобы перейти на уровень запуска для одного пользователя (уровень запуска 1). (Нажмите Ctrl + x для загрузки после.) Это то же самое, что и параметр режима восстановления в Grub.

Традиционно вы можете указать число в качестве параметра ядра, и вы загрузитесь на этот уровень запуска — например, используя 3 вместо single для загрузки на уровень выполнения 3. Однако похоже, это не работает в последних версиях Ubuntu — похоже, Upstart этого не позволяет. Точно так же то, как вы измените уровень запуска по умолчанию, будет зависеть от вашего дистрибутива.

Хотя демон Ubuntu Upstart по-прежнему эмулирует систему инициализации SystemV, большая часть этой информации изменится в будущем. Например, Upstart основан на событиях — он может останавливать и запускать службы при возникновении событий (например, служба может запускаться, когда аппаратное устройство подключается к системе, и останавливаться, когда устройство удаляется). У Fedora также есть собственный преемник. для инициализации, systemd.