Описание уровней выполненияdevops-1

Уровни выполнения (run levels) — это предопределенные состояния операционной системы Linux, которые определяют, какие сервисы и демоны должны быть запущены в конкретный момент времени. Эта концепция используется в системах инициализации SysVinit и частично в systemd (для совместимости).

Основные уровни выполнения

В традиционных системах с SysVinit существуют 7 основных уровней выполнения (от 0 до 6):

0 — Остановка системы (halt)
1 — Однопользовательский режим (single-user mode, rescue mode)
2 — Многопользовательский режим без сетевых сервисов (NFS)
3 — Многопользовательский режим с сетью (обычно используется для серверов)
4 — Не используется (пользовательский уровень, может быть настроен)
5 — Многопользовательский режим с графическим интерфейсом (GUI)
6 — Перезагрузка системы (reboot)

Подробное описание каждого уровня

  1. Уровень 0 (Halt)

    • Система полностью останавливается.
    • Все процессы завершаются, файловые системы размонтируются.
    • Используется для безопасного выключения.
  2. Уровень 1 (Single-User Mode / Rescue Mode)

    • Минимальный набор сервисов, только root-доступ.
    • Нет сетевых сервисов, используется для восстановления системы.
    • Пример: исправление критических ошибок в /etc/fstab.
  3. Уровень 2 (Multi-User без сети)

    • Многопользовательский режим, но без сетевых сервисов (например, NFS).
    • Редко используется в современных дистрибутивах.
  4. Уровень 3 (Multi-User с сетью)

    • Стандартный режим для серверов.
    • Запускаются все сервисы, кроме графического интерфейса.
  5. Уровень 4 (Пользовательский)

    • Обычно не используется, но может быть настроен администратором.
    • В некоторых дистрибутивах дублирует уровень 3 или 5.
  6. Уровень 5 (Graphical Mode)

    • Аналогичен уровню 3, но с запущенным графическим интерфейсом (X11, Wayland).
    • Стандартный режим для рабочих станций.
  7. Уровень 6 (Reboot)

    • Система перезагружается.
    • Все процессы завершаются, файловые системы размонтируются, затем инициируется перезагрузка.

Как проверить текущий уровень выполнения?

В SysVinit:

$ who -r
run-level 5  2024-06-14 10:00

В systemd (для совместимости):

$ runlevel
N 5

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

В systemd концепция run levels заменена на targets, но для совместимости поддерживается:

# Аналоги run levels в systemd:
0 — poweroff.target
1 — rescue.target
3 — multi-user.target
5 — graphical.target
6 — reboot.target

Переключение между уровнями

В SysVinit:

$ init 3  # Переключение в уровень 3

В systemd:

$ systemctl isolate multi-user.target  # Аналог уровня 3

Резюмируем

  • Уровни выполнения определяют состояние системы и набор активных сервисов.
  • В SysVinit 7 уровней (0-6), в systemd — targets (но есть обратная совместимость).
  • Уровни 3 и 5 — самые распространённые (серверный и десктопный режимы).
  • Современные системы (на systemd) используют targets, но команды вроде init и runlevel работают для совместимости.