Служба systemd не запускается: короткий маршрут диагностики

2 мин чтения

С каких команд начать, если служба systemd перешла в failed, и как найти причину в конфигурации и журнале.

Три источника сведений о службе
  1. Состояниеsystemctl status: результат запуска
  2. КонфигурацияКоманда, пользователь и рабочий каталог
  3. Журналjournalctl: ошибка и события перед ней

Служба перешла в failed. Повторный restart иногда помогает, но не объясняет, что произошло, а при постоянном сбое лишь добавляет одинаковые записи в журнал. Сначала посмотрим состояние, параметры запуска и первое сообщение об ошибке. Уже после исправления проверим и процесс, и само приложение.

Три команды для начала

systemctl status demo.service --no-pager -l
systemctl cat demo.service
journalctl -u demo.service --since today -n 100 --no-pager

Первая команда показывает состояние и краткую сводку. Вторая помогает увидеть основной unit и дополнительные настройки. Третья даёт события конкретной службы за понятный период. Если событий мало, проверьте загрузку системы и время инцидента, а не увеличивайте вывод до всего журнала сервера.

Сверяем окружение процесса

Сравните пользователя службы, рабочий каталог, путь к программе и расположение конфигурации. Команда, успешно выполненная из интерактивной оболочки, может зависеть от другого PATH, прав доступа или текущего каталога. Проверять нужно тот сценарий запуска, который описан unit-файлом.

В журнале сначала ищите первое осмысленное сообщение об ошибке. Последующие сообщения о повторных попытках часто являются следствием. Для журнала могут потребоваться дополнительные права; не изменяйте владельцев системных каталогов только ради удобства чтения.

Перезапуск после исправления

# Только если изменён unit-файл:
sudo systemctl daemon-reload
sudo systemctl restart demo.service
systemctl is-active demo.service

Активное состояние — промежуточная проверка. Дополнительно откройте рабочий endpoint или выполните прикладную операцию, затем проверьте новые сообщения журнала. Успешный запуск процесса не доказывает, что он подключился к базе или начал обслуживать запросы.

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

Источники и дальнейшее чтение