Systemd

Команды Systemd

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

Запустить юнит:

systemctl start unit

Остановить юнит:

systemctl stop unit

Перезапустить юнит:

systemctl restart unit

Перезагрузить конфигурацию юнита:

systemctl reload unit

Статус

Проверить статус юнита:

systemctl status unit

Автозапуск

Проверить, включен ли юнит в автозапуск:

systemctl is-enabled unit

Включить автозапуск:

systemctl enable unit

Отключить автозапуск:

systemctl disable unit

Маскирование

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

systemctl mask unit

Снять маску юнита:

systemctl unmask unit

Справка

Показать страницу справочного руководства юнита. Необходима поддержка этой функции в указанном файле юнита.

systemctl help unit

Обновление конфигурации systemd

Перезагрузить systemd для поиска новых или измененных юнитов:

systemctl daemon-reload

Работа с журналами (journalctl)

Основные команды

Просмотр логов с момента последней загрузки:

journalctl -b

Последние записи:

journalctl -n

Просмотр в реальном времени:

journalctl -f

Размер журнала:

journalctl --disk-usage

Фильтрация по дате

journalctl --since yesterday
journalctl --since 09:00 --until now
journalctl --since 10:00 --until "1 hour ago"

Фильтрация по службе

journalctl -u nginx.service
journalctl -u nginx.service --since yesterday
journalctl -u nginx.service -u php-fpm.service --since today

Фильтрация по PID и UID

По PID:

journalctl _PID=381

По UID:

journalctl _UID=33

Список всех UID в логах:

journalctl -F _UID

Список всех полей для фильтрации:

man systemd.journal-fields

Фильтрация по пути

journalctl /usr/bin/docker

Просмотр сообщений ядра

journalctl -k

Фильтрация по уровню ошибок

journalctl -p err

Ошибки:

  • 0 — EMERG (система неработоспособна);

  • 1 — ALERT (требуется немедленное вмешательство);

  • 2 — CRIT (критическое состояние);

  • 3 — ERR (ошибка);

  • 4 — WARNING (предупреждение);

  • 5 — NOTICE (всё нормально, но следует обратить внимание);

  • 6 — INFO (информационное сообщение);

  • 7 — DEBUG (отложенная печать).

Управление выводом

Вывод без less:

journalctl --no-pager

Форматы вывода:

journalctl -u nginx.service -o json

Доступные форматы:

  • cat — только сообщения из логов без служебных полей;

  • export — бинарный формат, подходит для экспорта или резервного копирования логов;

  • short — формат вывода syslog;

  • short-iso — формат вывода syslog с метками времени в формате ISO 8601;

  • short-monotonic — формат вывода syslog c метками монотонного времени (monotonic timestamp);

  • short-precise — формат вывода syslog с метками точного времени (время событий указывается с точностью до микросекунд);

  • verbose — максимально подробный формат представления данных (включает даже те поля, которые в других форматах не отображаются).

Ограничение размера журнала

Ограничить размер:

sudo journalctl --vacuum-size=1G

Ограничить по времени хранения:

sudo journalctl --vacuum-time=1years

Настройка параметров журнала

Файл: /etc/systemd/journald.conf

Основные параметры:

  • SystemMaxUse — максимальный объем, который логи могут занимать на диске;

  • SystemKeepFree — объем свободного места, которое должно оставаться на диске после сохранения логов;

  • SystemMaxFileSize — объем файла лога, по достижении которого он должен быть удален с диска;

  • RuntimeMaxUse — максимальный объем, который логи могут занимать в файловой системе /run;

  • RuntimeKeepFree — объем свободного места, которое должно оставаться в файловой системе /run после сохранения логов;

  • RuntimeMaxFileSize — объем файла лога, по достижении которого он должен быть удален из файловой системы /run.

Централизованное хранение логов

systemd-journal-remote --url https://some.host:19531/