Юниты systemd и systemctl
Юнит systemd — это объект конфигурации, которым управляет systemd, система инициализации большинства дистрибутивов Linux: службы, сокеты, таймеры, точки монтирования и многое другое. Юниты описываются файлами юнитов, такими как /etc/systemd/system/<name>.service, и управляются с помощью команды systemctl.
1Типы юнитов
.service запускает программу, .socket запускает службу при поступлении соединения, .timer запускает юнит по расписанию, .mount и .automount управляют файловыми системами, .target группирует юниты в состояния, такие как multi-user.target.
2Где находятся файлы юнитов
Пакеты устанавливают юниты в /usr/lib/systemd/system (или /lib/systemd/system). Локальные изменения следует вносить в /etc/systemd/system, так как они имеют приоритет. Команда systemctl edit <unit> создает переопределение (drop-in), вместо изменения файла из пакета.
3Повседневные команды
systemctl status <unit> показывает состояние и последние строки журнала. 'start', 'stop' и 'restart' выполняют действие немедленно; 'enable' и 'disable' управляют запуском при загрузке; 'enable --now' выполняет оба действия. systemctl --failed выводит список неисправных юнитов, а systemctl daemon-reload перечитывает файлы юнитов после внесения изменений.
Как проверить неисправную службу
- Вывести список неисправных юнитов:
systemctl --failed - Показать состояние и последние сообщения:
systemctl status <unit> - Прочитать полный журнал текущей загрузки:
journalctl -u <unit> -b - После исправления конфигурации:
sudo systemctl restart <unit>
Осторожно
- Изменяйте юниты из пакетов с помощью
systemctl edit, а не путем редактирования файлов в/usr/lib/systemd/system: обновления перезапишут их. - Не отключайте юниты, назначение которых вам неизвестно, например systemd-journald или dbus.
Связанные статьи
- journalctl и журнал systemdКак читать логи с помощью journalctl, проверять объем занимаемого журналом места и безопасно очищать его с помощью опций --vacuum.
- cron и crontabКак cron выполняет запланированные задачи, пять полей времени crontab, где хранятся системные файлы cron и как они соотносятся с таймерами systemd.
- logrotateЧто делает logrotate, как работает его конфигурация в /etc/logrotate.conf и /etc/logrotate.d, а также как безопасно протестировать правило.
Источники
- systemctl(1) man7.org
- systemd.unit(5) man7.org
- systemd.timer(5) man7.org
Последняя проверка: