Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

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

...

Типы юнитов

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

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

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

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

device

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

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

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

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

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

Чтобы менеджер systemd смог управлять юнитом, необходимо включить юнит.


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

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



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

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

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

Command

sudo systemctl poweroff


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

Command

sudo systemctl reboot

Режим восстановления операционной системы

В каких-то случаях может потребоваться режим восстановления ОС, при котором запущено минимальное количество процессов.

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

Command

sudo systemctl rescue


После восстановления необходимо перевести ОС в нормальный режим работы. Для этого используется команда:

Command

sudo systemctl default


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

Command

sudo systemctl is-system-running

Возможные режимы работы ОС:

Режим ОСОписание

initializing

Ранний этап загрузки ОС
starting
Поздний этап загрузки ОС
running
Нормальный режим работы ОС
degraded
ОС работает в нормальном режиме, но у каких-то юнитов есть ошибки
maintenance
ОС работает в режиме восстановления
stopping
Идёт процесс остановки работы менеджера systemd
offline
Менеджер systemd не запущен
unknown
Режим работы ОС не определён из-за нехватки ресурсов или по иной причине

Управление юнитами

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

Command

sudo systemctl start <unit_name>

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


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

Command

sudo systemctl stop <unit_name>

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


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

Command

sudo systemctl restart <unit_name>

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


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

Command

sudo systemctl enable <unit_name>

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


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

Command

sudo systemctl disable <unit_name>

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


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

Command

sudo systemctl is-enabled <unitstatus <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.

где

  • в строке "  Loaded:" отображается:
        - /lib/systemd/system/ssh.service – расположение юнит-файла;
        - enabled (после расположения юнит-файла) – состояние юнита "enable";
  • в строке "  Active:" отображается:
        - active (running) – юнит активен (служба запущена)

...

  • .


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

...

Блок кода
$ 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
          

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

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

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

Command

sudo systemctl poweroff

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

Command

sudo systemctl reboot

Режим восстановления операционной системы

В каких-то случаях может потребоваться режим восстановления ОС, при котором запущено минимальное количество процессов.

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

Command

sudo systemctl rescue

После восстановления необходимо перевести ОС в нормальный режим работы. Для этого используется команда:

Command

sudo systemctl default

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

Command

sudo systemctl is-system-running

Возможные режимы работы ОС:

...

initializing

...

Управление юнитами

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

Command

sudo systemctl start <unit_name>

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

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

Command

sudo systemctl stop <unit_name>

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

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

Command

sudo systemctl restart <unit_name>

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

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

Command

sudo systemctl status <unit_name>

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

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

Блок кода
$ sudo systemctl status sshd
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.

...

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

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

...