Журнал о понятных технологияхС чего начать чтение

· Quiet Stack · Linux · 2 мин чтения

Сервис не запустился: читаем systemd

Три команды, которые помогают понять состояние службы, прежде чем менять её настройки.

Когда программа работает как служба, сначала полезно посмотреть её состояние и журнал. Перезапуск без диагностики иногда помогает на минуту, но скрывает причину сбоя.

В примерах используется условное имя example.service. Замените его именем нужной службы.

Посмотрите состояние

systemctl status example.service --no-pager

Обратите внимание на строку Active, код завершения процесса и последние сообщения. Состояние active говорит, что служба запущена, но ещё не доказывает, что она отвечает на запросы. Поэтому после системной проверки стоит проверить и саму функцию программы: например, открыть страницу или выполнить запрос к локальному API.

Прочитайте сообщения текущей загрузки

journalctl -u example.service -b --no-pager -n 60

Ключ -u выбирает службу, -b ограничивает журнал текущей загрузкой системы, а -n показывает последние записи. Ищите первое содержательное сообщение перед завершением процесса. Оно обычно полезнее повторяющейся строки о неудачной попытке перезапуска. Для чтения части журналов могут понадобиться дополнительные права.

Проверьте фактическую конфигурацию службы

systemctl cat example.service

Эта команда показывает основной unit-файл и дополнительные настройки. Важно учитывать оба источника: локальный override может менять путь запуска, переменные окружения или права доступа. Перед редактированием сохраните исходную настройку и меняйте один параметр за раз.

Проверьте результат

Если вы изменили unit-файл, перечитайте конфигурацию systemd. Для изменения собственных файлов приложения обычно действуют его отдельные правила перезагрузки. После применения проверьте статус, свежие записи журнала и работу приложения снаружи.

Подробности доступны в руководствах systemctl и journalctl.

Share:
В журнал

Читайте дальше

Все материалы »