Введение
systemd – системный менеджер, управляющий операционной системой GNU/Linux и службами. При загрузке операционной системы первым запускается менеджер systemd, который запускает остальную часть операционной системы (далее ОС).
Менеджер systemd:
- запускает и останавливает операционную систему;
- управляет запуском и остановкой служб;
- монтирует файловые системы;
- ведёт журналы работы операционной системы и служб.
Менеджер systemd оперирует так называемыми юнитами (unit). Юниты отражают различные сущности операционной системы: службы, устройства, точки монтирования и др. Для каждой сущности используется свой тип юнитов. Между юнитами имеются зависимости. Менеджер systemd управляет юнитами с учётом этих зависимостей.
Для получения справки о менеджере используется команда:
TODO:
- man systemctl
- man systemd.unit
Управление юнитами
Существует одиннадцать типов юнитов:
| Тип юнитов | Описание |
|---|---|
| service | Управляет службой |
| socket | Управляет локальным IPC или сетевым сокетом |
| target | Объединяет набор юнитов для достижения целевого состояния операционной системы. Например, есть юниты: для остановки ОС, для перевода ОС в режим восстановления |
| device | Отражает какое-либо устройство компьютера. Например, жёсткий диск, сетевая карта. |
| mount | Управляет точкой монтирования в файловой системе |
| automount | Управляет автомонтированием накопительных устройств |
| timer | Активирует другие юниты по таймеру |
| swap | Управляет разделом или файлом подкачки |
| path | Активирует какую-либо службу при изменении объекта файловой системы, находящегося по заданному пути |
| slice | Объединяет набор юнитов для управления потреблением ресурсов этими юнитами |
| scope | Управляет службой, запущенной НЕ менеджером Но, если service-юнит описывается с помощью юнит-файла, то scope-юнит создаётся программно через API-интерфейс менеджера |
Управление операционной системой
Остановка и перезагрузка операционной системы
Для остановки ОС используется команда:
Для перезагрузки ОС используется команда:
Режим восстановления операционной системы
В каких-то случаях может потребоваться режим восстановления ОС, при котором запущено минимальное количество процессов.
Для перехода в режим восстановления ОС используется команда:
После восстановления необходимо перевести ОС в нормальный режим работы. Для этого используется команда:
Для просмотра текущего режима работы ОС используется команда:
Возможные режимы работы ОС:
| Режим ОС | Описание |
|---|---|
initializing | Ранний этап загрузки ОС |
| starting | Поздний этап загрузки ОС |
| running | Нормальный режим работы ОС |
| degraded | ОС работает в нормальном режиме, но у каких-то юнитов есть ошибки (неисправны) |
| maintenance | ОС работает в режиме восстановления |
| stopping | Идёт процесс остановки работы менеджера systemd |
| offline | Менеджер systemd не запущен |
| unknown | Режим работы ОС не определён из-за нехватки ресурсов или по иной причине |
Управление службами (юнитами)
Для отображения состояния службы, а также последней информации из журнала работы службы, используется команда:
где <service_name> – название службы.
Пример вывода команды:
systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2025-08-04 08:10:10 MSK; 8h ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1242 (sshd)
Tasks: 1 (limit: 2239)
Memory: 1.2M
CPU: 15ms
CGroup: /system.slice/ssh.service
└─1242 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
авг 04 08:10:10 alse-vanilla-gui sshd[1242]: Server listening on 0.0.0.0 port 22.
авг 04 08:10:10 alse-vanilla-gui sshd[1242]: Server listening on :: port 22.
авг 04 08:10:10 alse-vanilla-gui systemd[1]: Starting OpenBSD Secure Shell server...
авг 04 08:10:10 alse-vanilla-gui systemd[1]: Started OpenBSD Secure Shell server.
запуск,
остановка,
автозапуск,
перезапуск,
перечитывание настроек
Системные и пользовательские службы.
Журналы работы
системные журналы
журналы служб
journalctl --unit=
Расположение файлов и каталогов менеджера systemd
| Файл или каталог | Описание |
|---|---|
| /etc/systemd/ | Каталог с файлами настроек *.conf менеджера systemd |
| /etc/systemd/system/ | Каталог с включёнными юнит-файлами системных программ, т.е. находящимися в состоянии enable. |
| /etc/systemd/user/ | Каталог с включёнными юнит-файлами пользовательских программ, т.е. находящимися в состоянии enable. |
| /lib/systemd/system/ (фактически это /usr/lib/systemd/system/) | Каталог доступных системных юнит-файлов. В каталог устанавливаются системные юнит-файлы во время установки программ |
| /usr/lib/systemd/user/ | Каталог доступных пользовательских юнит-файлов. В каталог устанавливаются пользовательские юнит-файлы во время установки программ |