SystemdDoctor
служба не работает таймеры автозапуск

Таймер не работает после перезагрузки

Таймер, запущенный командой start, живёт до перезагрузки. Чтобы он поднимался сам, его нужно включить, а в unit-файле должна быть секция [Install] с WantedBy=timers.target.

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

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

  1. Таймер запущен, но не включён

    Команда start действует до перезагрузки, enable создаёт ссылку автозапуска. Разница обнаруживается только после перезагрузки сервера.

  2. В unit-файле таймера нет секции [Install]

    Без неё команда включения выдаст ошибку об отсутствии установочной конфигурации.

  3. Указана не та цель

    WantedBy=multi-user.target для таймера тоже сработает, но принято использовать timers.target: так таймеры собраны в одном месте и их проще обслуживать.

Диагностика

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

После перезагрузки покажет, поднялся ли таймер вообще.

systemctl list-timers --all --no-pager

Одно слово вместо разбора вывода: enabled, disabled или static.

systemctl is-enabled myapp.timer

Ссылки автозапуска таймеров: отсутствие вашей — прямой ответ.

ls -l /etc/systemd/system/timers.target.wants/

Решение

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

1. Таймер запущен, но не включён
Почему происходит
Команда start действует до перезагрузки, enable создаёт ссылку автозапуска. Разница обнаруживается только после перезагрузки сервера.
Как проверить
Посмотрите состояние включения.
systemctl is-enabled myapp.timer
systemctl status myapp.timer --no-pager | head -6
Как исправить
Включите таймер, желательно сразу с запуском.
sudo systemctl enable --now myapp.timer
2. В unit-файле таймера нет секции [Install]
Почему происходит
Без неё команда включения выдаст ошибку об отсутствии установочной конфигурации.
Как проверить
Посмотрите файл.
systemctl cat myapp.timer | tail -5
Как исправить
Добавьте секцию с указанием цели таймеров и включите заново.
[Install]
WantedBy=timers.target
3. Указана не та цель
Почему происходит
WantedBy=multi-user.target для таймера тоже сработает, но принято использовать timers.target: так таймеры собраны в одном месте и их проще обслуживать.
Как проверить
Посмотрите цель.
systemctl show myapp.timer -p WantedBy
Как исправить
Замените цель на timers.target, перечитайте конфигурацию и включите таймер заново.

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

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

$ systemctl status myapp.timer
● myapp.timer - Run myapp daily
     Loaded: loaded (/etc/systemd/system/myapp.timer; disabled; preset: enabled)
     Active: active (waiting) since Mon 2026-09-15 10:00:12 MSK; 2h ago
    Trigger: Tue 2026-09-16 00:00:00 MSK; 12h left

Ключевое слово в строке Loaded — «disabled». Таймер сейчас работает, но после перезагрузки не поднимется.

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

Источники

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