systemd Linux (systemd)

systemd: Unit not found после перемещения файла службы

  • Обновлено
  • Чтение ≈ 2 минуты
  • Нужны права администратора

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

После перемещения unit-файла systemd сообщает Unit not found. Чаще всего служебный файл лежит не в каталоге поиска либо менеджер служб не перечитал изменения.

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

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

Команда systemctl start ИМЯ.service выдаёт «Unit ... not found» после перемещения/переименования. Не путайте с status=203/EXEC, когда unit найден, но его исполняемый файл не запускается.

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

Возможная причинаКак узнатьЧто делать
Файл в неправильном каталогеsystemd ищет unit по определённым системным/пользовательским путям.systemctl cat сообщает unit not found.Сверить путь, название и расширение .service.
Менеджер не перечитал файлыФайл перемещён, но в systemd осталась старая схема.После согласованного daemon-reload юнит появляется.Выполнить перечитывание без перезагрузки системы.
Имя изменено, зависимость осталасьТаймер или другой unit ссылается на старое имя.В журнале упоминается прежнее название.Исправить только необходимые ссылки и проверить установку.

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

  1. Проверьте полное имяОткройте терминал, уточните файл: его название должно оканчиваться .service, учитывайте регистр букв. Для пользовательской службы используйте systemctl --user; системную не ищите в ~/.config/systemd/user.
  2. Проверьте, видит ли её systemdВыполните systemctl cat ИМЯ.service. Если видите содержимое файла, unit найден; проверьте правильность имени в команде запуска. Если No files found, выясняйте расположение. Если файл обнаружен, но после перемещения имя старое, его нужно уточнить до перезапуска.
  3. Проверьте назначенный путь без перемещенияВыполните systemctl show -p FragmentPath ИМЯ.service и ls -l /etc/systemd/system/ИМЯ.service. Для локальных пользовательских служб обычный путь — ~/.config/systemd/user/, но пути могут отличаться. Если файл вообще отсутствует, найдите исходную копию в резервном каталоге, не создавайте пустой unit.
  4. Убедитесь, что содержимое unit корректноЕсли файл существует, выполните systemd-analyze verify /etc/systemd/system/ИМЯ.service с настоящим путём. Утилита может сообщать предупреждения о зависимостях, которых нет на данном ПК. Сначала исправьте синтаксические ошибки и опечатки, не переименовывая случайные службы.
  5. Перечитайте конфигурацию после подтверждённого перемещенияСистемный администратор выполняет sudo systemctl daemon-reload. Это перечитывает unit-файлы, не запускает и не перезапускает всю систему. Для пользовательской службы нужно выполнить systemctl --user daemon-reload от нужного пользователя, без sudo.
  6. Проверьте работу и настройку автозапускаПовторите systemctl cat и systemctl status. При необходимости администратор запускает службу штатно. Если она имела автозапуск под старым именем, проверьте systemctl is-enabled и исправьте зависимости/таймеры отдельно; резервную копию старого файла сохраните до проверки.

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

Linux · Терминал (Bash)Команда
Просмотр обнаруженных unit-файлов.
systemctl cat ИМЯ.service
Linux · Терминал (Bash)Команда
Просмотр используемого пути файла.
systemctl show -p FragmentPath ИМЯ.service
Linux · Терминал (Bash)С осторожностьюНужен sudo
Только перечитывание unit-файлов системы, выполняется администратором.
sudo systemctl daemon-reload

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

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

Правильный unit появляется в systemctl cat, команда проверки синтаксиса не показывает критических ошибок, служба запускается при штатном условии.

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

Если unit не находится и после daemon-reload, сравните точное имя файла, суффикс, тип менеджера (--user или системный) и пути поиска; проблему нельзя устранить только повторным reload.

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

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