SystemdDoctor
служба не работает конфигурация частое

Unit-файл лежит не в том каталоге

systemd ищет unit-файлы в трёх каталогах с разным приоритетом: ваши файлы в /etc/systemd/system, временные в /run/systemd/system, файлы пакетов в /usr/lib/systemd/system. Файл в любом другом месте не будет найден, а правка файла пакета исчезнет при обновлении.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Файл положен не в каталог поиска

    Частые ошибки: /etc/systemd (без system), домашний каталог, /usr/lib/systemd/user для системной службы.

  2. Правка внесена в файл пакета

    Файл в /usr/lib/systemd/system принадлежит пакету: обновление заменит его, и правка исчезнет без предупреждения.

  3. Файл системной службы положен в каталог служб пользователя

    Каталоги для системных служб и служб пользователя разные. Файл в каталоге пользователя системный менеджер не увидит.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Полный список каталогов поиска в порядке приоритета.

systemctl show --property=UnitPath | tr " " "\n"

Путь к действующему файлу.

systemctl cat myapp.service | head -3

Где файл лежит фактически.

sudo find /etc /usr/lib /run -name "myapp*" 2>/dev/null

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Файл положен не в каталог поиска
Почему происходит
Частые ошибки: /etc/systemd (без system), домашний каталог, /usr/lib/systemd/user для системной службы.
Как проверить
Посмотрите каталоги поиска и найдите файл.
systemctl show --property=UnitPath | tr " " "\n" | head
sudo find / -name "myapp.service" -not -path "*/proc/*" 2>/dev/null
Как исправить
Перенесите файл в /etc/systemd/system и перечитайте конфигурацию.
2. Правка внесена в файл пакета
Почему происходит
Файл в /usr/lib/systemd/system принадлежит пакету: обновление заменит его, и правка исчезнет без предупреждения.
Как проверить
Посмотрите, откуда взят действующий файл.
systemctl cat myapp.service | head -3
Как исправить
Правьте через переопределение (systemctl edit) либо скопируйте файл в /etc/systemd/system и правьте копию.
3. Файл системной службы положен в каталог служб пользователя
Почему происходит
Каталоги для системных служб и служб пользователя разные. Файл в каталоге пользователя системный менеджер не увидит.
Как проверить
Посмотрите оба менеджера.
systemctl list-unit-files "myapp*"
systemctl --user list-unit-files "myapp*" 2>/dev/null
Как исправить
Определите, чья это служба: системная идёт в /etc/systemd/system, пользователя — в ~/.config/systemd/user.

Пример вывода

Файл положен в /etc/systemd вместо /etc/systemd/system. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

$ sudo systemctl start myapp.service
Failed to start myapp.service: Unit myapp.service not found.

$ sudo find /etc -name "myapp.service"
/etc/systemd/myapp.service

Связанные ошибки

Источники

  • systemd.unit(5)
    Каталоги поиска unit-файлов и их приоритет.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено: файл в /etc/systemd не находится, в /etc/systemd/system находится.
    собственная проверка, systemd 255
    сверено 15 сентября 2026