SystemdDoctor
journalctl

journalctl: как читать журнал systemd при разборе сбоя

Программа для чтения журнала systemd. Журнал хранится в двоичном виде и содержит не только текст сообщений, но и поля: имя unit, приоритет, номер процесса, идентификатор загрузки.

Что делает

Для разбора сбоя достаточно нескольких ключей. -u имя ограничивает вывод одной службой, -x добавляет пояснения systemd, -e перематывает в конец, -b показывает текущую загрузку, -p err оставляет только ошибки.

Возможность фильтровать по полям отличает журнал systemd от обычных файлов: journalctl _PID=1234 или journalctl SERVICE_ENV=prod работают точно, без разбора текста регулярными выражениями.

Где ставится. Команда в терминале. Настройки журнала — в /etc/systemd/journald.conf.

Значения

ЗначениеЧто происходит
journalctl -xeu имяжурнал службы с пояснениями, с конца: основная команда разбора.
journalctl -u имя --since "10 min ago"за последние десять минут.
journalctl -b -p errошибки текущей загрузки.
journalctl -kсообщения ядра.
journalctl -f -u имяследить за журналом в реальном времени.
journalctl -g "шаблон"поиск по регулярному выражению.
journalctl --disk-usageсколько места занимает журнал.

Пример

Порядок при разборе упавшей службы.

systemctl status myapp.service -l --no-pager
journalctl -xeu myapp.service --no-pager -n 100
journalctl -u myapp.service --since "1 hour ago" -p warning --no-pager
journalctl -k -b --no-pager | tail -30

Ключ --no-pager нужен, когда вывод идёт в файл или в другую программу: без него journalctl запускает постраничный просмотр.

Типичные ошибки

Ключ -p err скрывает сообщения ниже уровня ошибки: трассировки и подсказки часто идут с уровнем info.

Если журнал не постоянный (нет каталога /var/log/journal), после перезагрузки прежние записи недоступны.

Служба, пишущая в собственный файл, в журнале почти ничего не оставит: смотрите её файл.

Ограничение размера журнала может привести к потере старых записей раньше, чем вы их прочтёте.

Связанные ошибки

  • status=1/FAILURE в systemdКод 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.
  • Failed with result 'exit-code'Состояние exit-code: служба завершилась с ненулевым кодом. Что это сообщение значит и где искать настоящую причину.
  • No space left on device в журнале службыНет места на устройстве: разбор по свободным блокам, по inode, по журналу systemd и по удалённым, но открытым файлам.

Рядом стоящие параметры

Источники

  • journalctl(1) официальная документация
    сверено 15 сентября 2026
  • journald.conf(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026