Введение

systemd – системный менеджер, управляющий операционной системой GNU/Linux и службами. При загрузке операционной системы первым запускается менеджер systemd, который запускает остальную часть операционной системы (далее ОС).

Менеджер systemd:

Менеджер systemd оперирует так называемыми юнитами (unit). Юниты отражают различные сущности операционной системы: службы, устройства, точки монтирования и др. Для каждой сущности используется свой тип юнита. Между юнитами имеются зависимости. Менеджер systemd управляет юнитами с учётом этих зависимостей.

Типы юнитов

Существует одиннадцать типов юнитов:

Тип юнитаОписание
service
Управляет службой
socketУправляет локальным IPC или сетевым сокетом
target

Объединяет набор юнитов для достижения целевого состояния операционной системы.

Например, есть юниты: для остановки ОС, для перевода ОС в режим восстановления

device

Отражает какое-либо устройство компьютера.

Например, жёсткий диск, сетевая карта.

mount
Управляет точкой монтирования в файловой системе
automount
Управляет автомонтированием накопительных устройств
timer
Активирует другие юниты по таймеру
swap
Управляет разделом или файлом подкачки
path
Активирует какую-либо службу при изменении объекта файловой системы, находящегося по заданному пути
slice
Объединяет набор юнитов для управления потреблением ресурсов этими юнитами
scope

Управляет службой, запущенной НЕ менеджером systemd.

Но, если service-юнит описывается с помощью юнит-файла, то scope-юнит создаётся программно через API-интерфейс менеджера systemd


При включении в каталоге /etc/systemd/system/ или /etc/systemd/user/ создаётся юнит-файл с настройками юнита. А при отключении юнита этот юнит-файл удаляется. Расширение юнит-файла совпадает с типом юнита. В командах управления юнитами можно указывать название юнит-файла без его расширения.

В подкаталоге system/ создаются юнит-файлы для юнитов системных программ. В подкаталоге user/ – для юнитов пользовательских программ. 



Управление операционной системой

Остановка и перезагрузка операционной системы

Для остановки ОС используется команда:

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 enable <unit_name>

где <unit_name> – название юнит-файла.


Для отключения автозапуска юнита при загрузке ОС используется команда:

sudo systemctl disable <unit_name>

где <unit_name> – название юнита.


Для отображения состояния юнита, а также последней информации из журнала работы юнита, используется команда:

sudo systemctl status <unit_name>

где <unit_name> – название юнита.

Пример вывода команды:

$ sudo systemctl status ssh
● 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.

где


Для отображения иерархического дерева запущенных юнитов используется команда:

sudo systemctl status

Пример вывода команды:

$ 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
          

Журналы работы

системные журналы

журналы служб

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/

Каталог доступных пользовательских юнит-файлов.

В каталог устанавливаются пользовательские юнит-файлы во время установки программ