Runlevels
и systemd targets
являются концепциями, используемыми в инициализационных системах в Linux для управления режимами работы системы. Однако, runlevels
и systemd targets
представляют собой разные подходы к управлению состоянием системы.
Runlevels (Уровни выполнения)
- Runlevels представляют собой различные режимы работы операционной системы, в которых определен набор служб, работающих или остановленных. Обычно в системах, использующих SysVinit, существует 7 основных runlevels, обозначаемых числами от 0 до 6, а также runlevel S, который является одноразовым режимом восстановления (single-user mode).
- Каждый runlevel определяет, какие службы должны быть запущены или остановлены при входе в данный режим. Например, runlevel 3 может предоставлять полнофункциональный многопользовательский текстовый режим, а runlevel 5 - многопользовательский графический режим.
Systemd Targets
- Systemd Targets представляют собой более гибкую концепцию, введенную systemd. Они представляют собой группы служб и других ресурсов, которые могут быть объединены вместе для определенного состояния системы.
- В отличие от runlevels, systemd targets не обязаны быть линейной последовательностью, и одна и та же служба может входить в несколько различных targets. Это предоставляет более гибкий и модульный способ управления состоянием системы.
Примеры targets:
multi-user.target
: Эквивалентен runlevel 3 в традиционной системе с SysVinit.
graphical.target
: Эквивалентен runlevel 5.
rescue.target
: Эквивалентен режиму восстановления.
Различия
- Гибкость:
- Runlevels: Фиксированный и предопределенный набор состояний системы.
- Systemd Targets: Более гибкий и модульный подход, который позволяет определять собственные цели.
- Совместимость:
- Runlevels: Используется в системах с SysVinit.
- Systemd Targets: Используется в системах, использующих systemd.
Обе концепции предоставляют средства для управления состоянием системы, но systemd targets предоставляют большую гибкость и более современный подход к управлению службами в Linux-системах.
GUI vs CLI
- Загрузка в GUI:
- Когда система загружается в графический режим, она предоставляет пользователю графический интерфейс, обычно с использованием оконного менеджера и графического рабочего стола. Пользователь может использовать мышь и клавиатуру для взаимодействия с приложениями и системой в целом. Загрузка в GUI обеспечивает удобный и интуитивно понятный способ использования компьютера.
- Загрузка в CLI:
- Загрузка в командной строке означает, что после завершения процесса загрузки пользователь видит только текстовый интерфейс командной строки, где он может вводить команды вручную. В этом режиме пользователь может использовать команды для выполнения различных задач, таких как управление файлами, настройка системы и выполнение других операций. Загрузка в CLI обеспечивает более тесный контроль над системой и может быть предпочтительной для опытных пользователей или для выполнения задач администрирования.
Команды для работы с systemd targets
systemctl get-default
- используется для вывода текущей цели (target), которая устанавливается по умолчанию при загрузке системы. То есть, она показывает, какая цель будет активирована при старте системы.
ls -ltr /etc/systemd/system/default.target
- эта команда используется для просмотра символической ссылки, которая определяет цель (target), которая будет активирована при старте системы. Символическая ссылка обычно указывает на реальную цель в /lib/systemd/system/
или /etc/systemd/system/
.
В большинстве случаев, ссылка на цель по умолчанию обычно находится в /etc/systemd/system/
и имеет имя default.target
. Однако, если её там нет, можно использовать следующую команду: ls -ltr /lib/systemd/system/default.target