5. Обзор Systemd

Что такое Systemd?

Systemd — это система инициализации (init system) и менеджер служб по умолчанию для большинства современных дистрибутивов Linux. Он отвечает за правильную последовательность инициализации системы после загрузки ядра. Простой способ проверить, используете ли вы его, — это проверить наличие каталога /usr/lib/systemd. Если он существует, ваша система, скорее всего, управляется systemd.

Процесс загрузки Systemd

Вместо жестко заданных последовательных скриптов systemd использует концепцию «целей» (goals) для приведения вашей системы в рабочее состояние. Он определяет основную цель, или target, и работает над удовлетворением ее зависимостей. Такой подход обеспечивает большую гибкость и распараллеливание во время запуска. Типичный процесс загрузки, управляемый systemd, включает следующие шаги:

  1. systemd сначала загружает свои конфигурационные файлы из таких каталогов, как /etc/systemd/system и /usr/lib/systemd/system.
  2. Затем он определяет цель загрузки по умолчанию, которая обычно представляет собой символическую ссылку с именем default.target.
  3. Наконец, systemd разрешает все зависимости для этой цели и активирует необходимые юниты для достижения желаемого состояния системы.

Понимание целей Systemd (Systemd Targets)

Цели в systemd аналогичны уровням выполнения (runlevels) в старой системе инициализации SysV. Они представляют различные состояния, в которых может находиться система. К распространенным целям относятся:

  • poweroff.target: Выключение системы.
  • rescue.target: Загрузка в однопользовательскую оболочку для обслуживания.
  • multi-user.target: Стандартная многопользовательская среда с сетью, но без графического интерфейса.
  • graphical.target: Полноценная многопользовательская среда с сетью и графическим пользовательским интерфейсом (GUI).
  • reboot.target: Перезагрузка системы.

default.target — это символическая ссылка, указывающая на цель, в которую система загрузится по умолчанию, часто это graphical.target в десктопных системах.

Основная концепция: Юниты Systemd

Фундаментальные объекты, которыми управляет systemd, называются «юнитами». Юнит — это конфигурационный файл, описывающий ресурс или службу. Сила архитектуры system d заключается в его способности управлять различными типами ресурсов, а не только службами. Тип каждого юнита определяется его расширением файла. Наиболее распространенные типы:

  • Сервисные юниты (.service): Управляют системными демонами или службами, такими как веб-сервер или база данных.
  • Юниты монтирования (.mount): Управляют точками монтирования файловой системы.
  • Целевые юниты (.target): Используются для группировки других юнитов, создавая точки синхронизации во время загрузки.

Например, когда система загружается в graphical.target, этот юнит цели гарантирует, что все его зависимости, такие как multi-user.target и различные сервисные юниты, например network.service, будут запущены первыми.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Хотя для этой темы нет конкретных лабораторных работ, мы рекомендуем изучить комплексный Путь обучения Linux, чтобы попрактиковаться в связанных навыках и концепциях Linux.

Тест

Какой юнит используется для группировки других юнитов? Пожалуйста, ответьте одним строчным английским словом.