systemd Linux (systemd)

systemd: Служба systemd запускается вручную, но не после перезагрузки

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

Служба systemd успешно стартует командой systemctl start, но не запускается после перезагрузки. Для начала различите отсутствие автозапуска и ошибку самой службы в процессе загрузки.

В этой статье
  1. Что происходит и когда это важно
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Команды из инструкции с пояснениями
  5. Как проверить результат
  6. Если проблема не устранена

#Что происходит и когда это важно

После ручного start статус active, но после включения процесс не работает. Это может быть штатная служба, socket-activated либо пользовательская служба — процедуры отличаются.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Автозапуск не включёнСлужба не привязана к целевому состоянию загрузки.systemctl is-enabled выдаёт disabled.Посмотреть Install и включить только согласованную службу.
Служба зависит от другого ресурсаПри загрузке недоступен диск, сеть или секрет.Статус после перезагрузки failed и журнал содержит ошибку.Проверить зависимости и устранить конкретную причину.
У юнита нет конфигурации установкиСтатус static указывает, что он запускается другой службой.is-enabled выдаёт static.Определить активатор, не пытаться enable вслепую.

#Пошаговая диагностика и исправление

  1. Сверьте имя и тип службыОткройте терминал. На сервере подключитесь штатным способом, не закрывая резервный сеанс. Подставьте реальное имя вместо ИМЯ.service в команды. Сначала выполните systemctl status ИМЯ.service --no-pager и посмотрите Active, Loaded и путь к unit-файлу. Если это пользовательский сервис, используйте systemctl --user, а не sudo.
  2. Проверьте разрешение автозапускаВыполните systemctl is-enabled ИМЯ.service. Ответ enabled означает установленные связи автозапуска; disabled — нет; static — unit не предназначен для отдельного enable; masked — заблокирован. Не пытайтесь включать masked до выяснения причины блокировки.
  3. Просмотрите описание и способ запускаВыполните systemctl cat ИМЯ.service и найдите разделы [Unit], [Service], [Install]. Если в Install нет WantedBy, статус static может быть нормальным. Проверьте наличие других сервисов/таймеров/сокетов, которые его активируют.
  4. Сравните с состоянием после перезагрузкиПосле согласованной перезагрузки выполните systemctl status ИМЯ.service --no-pager и journalctl -u ИМЯ.service -b --no-pager. Если failed, прочитайте первую реальную ошибку: отсутствие файла, зависимость или отказ прав. Не подменяйте диагностику установкой Restart=always.
  5. Включайте только если юнит действительно должен стартовать постоянноПри disabled, наличии подходящего [Install] и согласованном требовании администратор может выполнить sudo systemctl enable ИМЯ.service. Это создаёт связи в конфигурации systemd, но не запускает службу немедленно. Для запуска отдельно используется sudo systemctl start ИМЯ.service. Не применяйте enable к нежелательным/временным службам.
  6. Контролируйте и сохраняйте откатПосле тестовой перезагрузки проверьте active и работу приложения. Если ошибочно включили службу, администратор выполняет sudo systemctl disable ИМЯ.service; это отменяет автозапуск, но не завершает уже работающий процесс. Если причина в зависимостях, верните исходное состояние и займитесь конкретной ошибкой.

#Команды из инструкции с пояснениями

Linux · Терминал (Bash)Команда
Просмотр; ИМЯ заменить названием реально существующего сервиса.
systemctl status ИМЯ.service --no-pager
Linux · Терминал (Bash)Команда
Проверяет автозапуск.
systemctl is-enabled ИМЯ.service
Linux · Терминал (Bash)Команда
Показывает системное описание и переопределения.
systemctl cat ИМЯ.service
Linux · Терминал (Bash)Команда
Журнал службы за текущую загрузку.
journalctl -u ИМЯ.service -b --no-pager

#Как проверить результат

После штатной перезагрузки сервис запускается по назначенному механизму и выполняет полезную функцию, в журнале нет ошибки старта.

#Если проблема не устранена

Если is-enabled=enabled, но статус failed, скопируйте строки journalctl -u ... -b и сопоставьте условие запуска с фактическим порядком активации. Не меняйте глобальный default target без необходимости.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.