Ответ
В современных дистрибутивах Linux, использующих systemd (например, Ubuntu 16.04+, RHEL/CentOS 7+), традиционные уровни запуска (runlevels) заменены на цели (targets). Однако знание обеих систем важно для администрирования.
1. Традиционные уровни запуска SysVinit (Runlevels): Это числовые обозначения состояния системы. Основные из них:
- 0 - Остановка системы (
halt). - 1 или S - Однопользовательский режим (режим восстановления, без сети, с root-доступом).
- 3 - Многопользовательский режим с сетью (стандартный режим для серверов, без графического интерфейса).
- 5 - Многопользовательский режим с графическим интерфейсом (стандарт для рабочих станций).
- 6 - Перезагрузка системы (
reboot).
2. Цели (Targets) в systemd: Systemd использует именованные цели, которые могут зависеть друг от друга. Ключевые цели:
poweroff.target/runlevel0.target- Аналог runlevel 0 (выключение).rescue.target/runlevel1.target- Аналог runlevel 1 (аварийная оболочка).multi-user.target/runlevel3.target- Аналог runlevel 3 (многопользовательский, текстовый).graphical.target/runlevel5.target- Аналог runlevel 5 (графический интерфейс).reboot.target/runlevel6.target- Аналог runlevel 6 (перезагрузка).default.target- Символическая ссылка на цель по умолчанию (например, наmulti-user.target).
Практическое использование в DevOps:
# Просмотр текущей цели по умолчанию (какой runlevel загружается)
systemctl get-default
# Установка цели по умолчанию (например, для сервера без GUI)
sudo systemctl set-default multi-user.target
# Временное переключение в режим восстановления (например, для сброса пароля root)
sudo systemctl isolate rescue.target
# Для совместимости: просмотр и переключение через эмуляцию runlevel
runlevel # Покажет предыдущий и текущий 'уровень'
sudo telinit 3 # Переключит на multi-user.target
Понимание этих целей критично для настройки серверов, которые должны загружаться в минимально необходимом состоянии (обычно multi-user.target), и для операций восстановления.