# Юниты systemd и systemctl

> Что такое юнит systemd, основные типы юнитов, а также как запускать, останавливать, включать и проверять службы с помощью systemctl.

Юнит systemd — это объект конфигурации, которым управляет systemd, система инициализации большинства дистрибутивов Linux: службы, сокеты, таймеры, точки монтирования и многое другое. Юниты описываются файлами юнитов, такими как /etc/systemd/system/<name>.service, и управляются с помощью команды systemctl.

## Типы юнитов

.service запускает программу, .socket запускает службу при поступлении соединения, .timer запускает юнит по расписанию, .mount и .automount управляют файловыми системами, .target группирует юниты в состояния, такие как multi-user.target.

## Где находятся файлы юнитов

Пакеты устанавливают юниты в /usr/lib/systemd/system (или /lib/systemd/system). Локальные изменения следует вносить в /etc/systemd/system, так как они имеют приоритет. Команда 'systemctl edit <unit>' создает переопределение (drop-in), вместо изменения файла из пакета.

## Повседневные команды

'systemctl status <unit>' показывает состояние и последние строки журнала. 'start', 'stop' и 'restart' выполняют действие немедленно; 'enable' и 'disable' управляют запуском при загрузке; 'enable --now' выполняет оба действия. 'systemctl --failed' выводит список неисправных юнитов, а 'systemctl daemon-reload' перечитывает файлы юнитов после внесения изменений.

## Как проверить неисправную службу

1. Вывести список неисправных юнитов: systemctl --failed
2. Показать состояние и последние сообщения: systemctl status <unit>
3. Прочитать полный журнал текущей загрузки: journalctl -u <unit> -b
4. После исправления конфигурации: sudo systemctl restart <unit>

## Осторожно

- Изменяйте юниты из пакетов с помощью 'systemctl edit', а не путем редактирования файлов в /usr/lib/systemd/system: обновления перезапишут их.
- Не отключайте юниты, назначение которых вам неизвестно, например systemd-journald или dbus.

## Источники

- [systemctl(1)](https://man7.org/linux/man-pages/man1/systemctl.1.html)
- [systemd.unit(5)](https://man7.org/linux/man-pages/man5/systemd.unit.5.html)
- [systemd.timer(5)](https://man7.org/linux/man-pages/man5/systemd.timer.5.html)

Обновлено: 2026-10-08
URL: https://raincleaner.eu/ru/wiki/linux/systemd-units
