systemd – системный менеджер, управляющий операционной системой GNU/Linux и службами. При загрузке операционной системы первым запускается менеджер systemd, который запускает остальную часть операционной системы (далее ОС).
Менеджер systemd:
Менеджер systemd оперирует так называемыми юнитами (unit). Юниты отражают различные сущности операционной системы: службы, устройства, точки монтирования и др. Для каждой сущности используется свой тип юнита. Между юнитами имеются зависимости. Менеджер systemd управляет юнитами с учётом этих зависимостей.
Существует одиннадцать типов юнитов:
| Тип юнита | Описание |
|---|---|
| service | Управляет службой |
| socket | Управляет локальным IPC или сетевым сокетом |
| target | Объединяет набор юнитов для достижения целевого состояния операционной системы. Например, есть юниты: для остановки ОС, для перевода ОС в режим восстановления |
| device | Отражает какое-либо устройство компьютера. Например, жёсткий диск, сетевая карта. |
| mount | Управляет точкой монтирования в файловой системе |
| automount | Управляет автомонтированием накопительных устройств |
| timer | Активирует другие юниты по таймеру |
| swap | Управляет разделом или файлом подкачки |
| path | Активирует какую-либо службу при изменении объекта файловой системы, находящегося по заданному пути |
| slice | Объединяет набор юнитов для управления потреблением ресурсов этими юнитами |
| scope | Управляет службой, запущенной НЕ менеджером Но, если service-юнит описывается с помощью юнит-файла, то scope-юнит создаётся программно через API-интерфейс менеджера |
Чтобы менеджер systemd смог управлять юнитом, необходимо включить юнит.
При включении в каталоге /etc/systemd/system/ или /etc/systemd/user/ создаётся юнит-файл с настройками юнита. А при отключении юнита этот юнит-файл удаляется. Расширение юнит-файла совпадает с типом юнита. В нижеприведённых командах можно указывать название юнит-файла без расширения.
В подкаталоге system/ создаются юнит-файлы для юнитов системных программ. В подкаталоге user/ – для юнитов пользовательских программ.
Для включения юнита используется команда:
sudo systemctl enable <unit_name> |
где <unit_name> – название юнит-файла.
Для отключения юнита используется команда:
sudo systemctl disable <unit_name> |
где <unit_name> – название юнита.
Для проверки включённого состояния юнита используется команда:
sudo systemctl is-enabled <unit_name> |
где <unit_name> – название юнита.
Если юнит включён, то команда выведет текст "enabled".
Для отображения иерархического дерева запущенных юнитов используется команда:
sudo systemctl status |
Пример вывода команды:
rbta-ekb-lt-123456.astralinux.ru
State: degraded
Units: 523 loaded (incl. loaded aliases)
Jobs: 0 queued
Failed: 4 units
Since: Tue 2025-08-05 08:50:54 +05; 7h ago
systemd: 252.17-1~deb12u1astra.se3+ci2
CGroup: /
├─1454 /opt/kaspersky/kesl/libexec/kesl
├─init.scope
│ └─1 /sbin/init splash
├─system.slice
│ ├─ModemManager.service
│ │ ├─1334 /usr/sbin/ModemManager
│ │ └─2478 /usr/libexec/mbim-proxy
│ ├─NetworkManager.service
│ │ ├─2071 /usr/sbin/NetworkManager --no-daemon
│ │ ├─7647 /usr/lib/NetworkManager/nm-openconnect-service --bus-name org.freedesktop.NetworkManager.openconnect.Connection_4
│ │ └─7737 /usr/sbin/openconnect --servercert pin-sha256:qTme6hdkT1xgmWjngi0kAL8AShIN2kAn5CfzpT/I/rI= --syslog --cookie-on-s>
│ ├─accounts-daemon.service
│ │ └─1647 /usr/libexec/accounts-daemon
│ ├─acpid.service
│ │ └─1235 /usr/sbin/acpid
│ ├─assistant.service
│ │ ├─ 2902 /opt/assistant/bin/asts
│ │ ├─ 5642 sudo -u root -H /opt/assistant/bin/astrct -ISS:1 -PID:2902 -PIPE:/tmp/assistant/pipes/28CDA78A75FA4537BC586BE86>
│ │ ├─ 5654 /opt/assistant/bin/astrct -ISS:1 -PID:2902 -PIPE:/tmp/assistant/pipes/28CDA78A75FA4537BC586BE86F7CEB2E_63A9F0EA>
│ │ ├─ 6081 sudo -u sbutakov -H /opt/assistant/bin/astrct -ISS:1 -PID:2902 -PIPE:/tmp/assistant/pipes/28CDA78A75FA4537BC586>
│ │ ├─ 6083 /opt/assistant/bin/astrct -ISS:1 -PID:2902 -PIPE:/tmp/assistant/pipes/28CDA78A75FA4537BC586BE86F7CEB2E_A92E540C>
│ │ └─114451 ps ax -o stat,comm
│ ├─astra-event-diagnostics-healthcheck.service
│ │ └─4711 /usr/bin/python3 /usr/bin/astra-event-diagnostics --healthcheck -c /etc/astra-event-diagnostics/astra-event-diagn>
│ ├─auditd.service
|
Для остановки ОС используется команда:
sudo systemctl poweroff |
Для перезагрузки ОС используется команда:
sudo systemctl reboot |
В каких-то случаях может потребоваться режим восстановления ОС, при котором запущено минимальное количество процессов.
Для перехода в режим восстановления ОС используется команда:
sudo systemctl rescue |
После восстановления необходимо перевести ОС в нормальный режим работы. Для этого используется команда:
sudo systemctl default |
Для просмотра текущего режима работы ОС используется команда:
sudo systemctl is-system-running |
Возможные режимы работы ОС:
| Режим ОС | Описание |
|---|---|
initializing | Ранний этап загрузки ОС |
| starting | Поздний этап загрузки ОС |
| running | Нормальный режим работы ОС |
| degraded | ОС работает в нормальном режиме, но у каких-то юнитов есть ошибки |
| maintenance | ОС работает в режиме восстановления |
| stopping | Идёт процесс остановки работы менеджера systemd |
| offline | Менеджер systemd не запущен |
| unknown | Режим работы ОС не определён из-за нехватки ресурсов или по иной причине |
Для запуска юнита используется команда:
sudo systemctl start <unit_name> |
где <unit_name> – название юнита.
Для остановки юнита используется команда:
sudo systemctl stop <unit_name> |
где <unit_name> – название юнита.
Для остановки (если юнит был запущен) и последующего запуска юнита используется команда:
sudo systemctl restart <unit_name> |
где <unit_name> – название юнита.
Для отображения состояния юнита, а также последней информации из журнала работы юнита, используется команда:
sudo systemctl status <unit_name> |
где <unit_name> – название юнита.
Пример вывода команды:
systemctl status sshd |
системные журналы
журналы служб
journalctl --unit=
| Файл или каталог | Описание |
|---|---|
| /etc/systemd/ | Каталог с файлами настроек *.conf менеджера systemd |
| /etc/systemd/system/ | Каталог с включёнными юнит-файлами системных программ, т.е. находящимися в состоянии enable. |
| /etc/systemd/user/ | Каталог с включёнными юнит-файлами пользовательских программ, т.е. находящимися в состоянии enable. |
| /lib/systemd/system/ (фактически это /usr/lib/systemd/system/) | Каталог доступных системных юнит-файлов. В каталог устанавливаются системные юнит-файлы во время установки программ |
| /usr/lib/systemd/user/ | Каталог доступных пользовательских юнит-файлов. В каталог устанавливаются пользовательские юнит-файлы во время установки программ |