Что такое таргеты в systemd
1️⃣ Как кратко ответить
Таргеты в systemd — это логические группы юнитов, которые определяют состояние системы. Они заменяют традиционные runlevels в SysVinit и позволяют управлять состоянием системы, например, загрузкой в графический режим или в режим восстановления.
2️⃣ Подробное объяснение темы
Таргеты в systemd — это концепция, которая позволяет управлять состоянием системы через группировку юнитов. Юниты — это основные строительные блоки systemd, которые могут представлять службы, устройства, точки монтирования и другие ресурсы. Таргеты, в свою очередь, объединяют эти юниты для достижения определенного состояния системы.
Зачем нужны таргеты
Таргеты заменяют традиционные runlevels, которые использовались в SysVinit для управления состоянием системы. Runlevels были ограничены числовыми значениями (например, 0 для выключения, 1 для однопользовательского режима и т.д.), что делало их менее гибкими. Таргеты, напротив, позволяют более точно и гибко определять состояния системы, используя имена, которые легко понять и запомнить.
Примеры использования таргетов
-
multi-user.target: Это состояние, аналогичное runlevel 3 в SysVinit, где система загружается в многопользовательский режим без графического интерфейса. Это полезно для серверов, где графический интерфейс не требуется.
-
graphical.target: Это состояние, аналогичное runlevel 5, где система загружается с графическим интерфейсом. Это обычно используется на настольных системах.
-
rescue.target: Это состояние, аналогичное runlevel 1, где система загружается в однопользовательский режим для восстановления. Это полезно для выполнения административных задач, таких как восстановление системы после сбоя.
Как работают таргеты
Таргеты определяются в виде файлов с расширением .target, которые находятся в каталоге /usr/lib/systemd/system/ или /etc/systemd/system/. Эти файлы содержат ссылки на другие юниты, которые должны быть активированы для достижения состояния, определенного таргетом.
Пример файла таргета:
# /usr/lib/systemd/system/multi-user.target
[Unit]
Description=Multi-User System
Documentation=man:systemd.special(7)
Requires=basic.target
Wants=network.target
Conflicts=rescue.service rescue.target
After=basic.target rescue.service rescue.target
AllowIsolate=yes
- Description: Описание таргета.
- Requires: Юниты, которые должны быть активированы для достижения этого состояния.
- Wants: Юниты, которые желательно активировать, но не обязательно.
- Conflicts: Юниты, которые не могут быть активированы одновременно с этим таргетом.
- After: Определяет порядок активации юнитов.
- AllowIsolate: Позволяет изолировать этот таргет, что означает, что он может быть установлен как текущий активный таргет.
Как управлять таргетами
Для управления таргетами используются команды systemctl. Например:
systemctl isolate multi-user.target: Переключает систему в многопользовательский режим.systemctl get-default: Показывает текущий таргет по умолчанию.systemctl set-default graphical.target: Устанавливает графический таргет как таргет по умолчанию.
Таргеты в systemd обеспечивают гибкость и мощные возможности для управления состоянием системы, что делает их важным инструментом в арсенале DevOps-инженера.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться