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

Таймер сработал, а служба не найдена

Таймер по умолчанию запускает службу с тем же именем и расширением .service. Если файлы названы по-разному, а Unit= не задан, срабатывание приводит к ошибке «Unit not found» — таймер работает, дела не делается.

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

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

  1. Имена таймера и службы не совпадают

    Таймер backup-nightly.timer ищет backup-nightly.service. Если служба называется backup.service, связи нет.

  2. В Unit= опечатка или нет расширения

    Без расширения systemd достраивает .service, но опечатка в имени приводит к поиску несуществующего unit.

  3. Служба удалена, а таймер остался

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

Диагностика

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

Точно показывает, какую службу таймер будет запускать.

systemctl show myapp.timer -p Unit

Ошибки срабатывания видны именно в журнале таймера, а не службы.

journalctl -u myapp.timer -n 20 --no-pager

Все связанные файлы: сразу видно расхождение имён.

systemctl list-unit-files "*myapp*"

Решение

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

1. Имена таймера и службы не совпадают
Почему происходит
Таймер backup-nightly.timer ищет backup-nightly.service. Если служба называется backup.service, связи нет.
Как проверить
Посмотрите, что таймер собирается запускать.
systemctl show myapp.timer -p Unit
systemctl list-timers --all --no-pager | grep -i myapp
Как исправить
Либо переименуйте файлы к общему имени, либо укажите службу явно.
[Timer]
Unit=backup.service
2. В Unit= опечатка или нет расширения
Почему происходит
Без расширения systemd достраивает .service, но опечатка в имени приводит к поиску несуществующего unit.
Как проверить
Сверьте имя с фактическим файлом.
systemctl show myapp.timer -p Unit
systemctl list-unit-files "*backup*"
Как исправить
Исправьте имя на точное, с расширением, и перечитайте конфигурацию.
3. Служба удалена, а таймер остался
Почему происходит
После удаления пакета или переименования службы таймер продолжает срабатывать в пустоту.
Как проверить
Проверьте наличие службы.
systemctl cat backup.service 2>&1 | head -3
Как исправить
Удалите ненужный таймер целиком: systemctl disable --now myapp.timer и уберите файл.

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

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

systemd[1]: backup-nightly.timer: Triggering OnCalendar=daily
systemd[1]: Failed to queue unit startup job: Unit backup-nightly.service not found.
systemd[1]: backup-nightly.timer: Failed to queue unit startup job: Unit backup-nightly.service not found.

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

Источники

  • systemd.timer(5)
    Параметр Unit= и правило имени по умолчанию.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено таймером с именем, не совпадающим с именем службы.
    собственная проверка, systemd 255
    сверено 15 сентября 2026