· 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.

