Таймер пользователя не срабатывает
Таймеры пользователя живут в его менеджере, который завершается при выходе из системы. Без разрешённой задержки сеанса они срабатывают только пока вы в системе — а на сервере это почти никогда.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Задержка сеанса не разрешена
Менеджер пользователя завершается вместе с последним сеансом, и таймеры вместе с ним.
-
Таймер не включён в менеджере пользователя
Команды с ключом пользователя и без него работают с разными наборами unit. Включение системного таймера не включает таймер пользователя.
-
Задача требует прав, которых у пользователя нет
Таймер срабатывает, а задача падает: обращение к системным каталогам или службам недоступно.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Разрешена ли работа без входа в систему.
loginctl show-user $USER -p LingerТаймеры менеджера пользователя.
systemctl --user list-timers --all --no-pagerЖурнал задачи пользователя.
journalctl --user -u mytask.service -n 20 --no-pagerРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Менеджер пользователя завершается вместе с последним сеансом, и таймеры вместе с ним.
- Как проверить
-
Посмотрите состояние задержки.
loginctl show-user $USER -p Linger systemctl --user list-timers --no-pager
- Как исправить
-
Разрешите задержку сеанса для пользователя: тогда его менеджер и таймеры будут работать постоянно.
sudo loginctl enable-linger $USER
- Почему происходит
- Команды с ключом пользователя и без него работают с разными наборами unit. Включение системного таймера не включает таймер пользователя.
- Как проверить
-
Посмотрите состояние включения.
systemctl --user is-enabled mytimer.timer
- Как исправить
-
Включите таймер с ключом пользователя:
systemctl --user enable --now mytimer.timer.
- Почему происходит
- Таймер срабатывает, а задача падает: обращение к системным каталогам или службам недоступно.
- Как проверить
-
Посмотрите журнал службы пользователя.
journalctl --user -u mytask.service -n 20 --no-pager
- Как исправить
- Перенесите задачу в системный таймер, если ей нужны права. Смешивать не стоит: запутывает при разборе.
Пример вывода
Таймер пользователя не работает без входа в систему. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
$ systemctl --user list-timers --no-pager
NEXT LEFT LAST PASSED UNIT ACTIVATES
Tue 2026-09-16 09:00:00 MSK 11h left - - backup.timer backup.service
$ loginctl show-user user -p Linger
Linger=no
Связанные ошибки
- Служба пользователя не запускается или не переживает выход systemctl --user: служба останавливается при выходе из системы. Разбор lingering и отличий от системных служб.
- Таймер не работает после перезагрузки Таймер работал, пока его запускали вручную, но после перезагрузки не активен: не выполнено включение или нет WantedBy=timers.target.
- Failed to connect to bus: подключение к шине недоступно Команды systemctl не работают: нет подключения к шине. Разбор для контейнеров, сеансов по ssh и служб пользователя.
- Failed to parse calendar expression: ошибка в OnCalendar systemd не разбирает календарное выражение таймера. Правила записи OnCalendar и проверка через systemd-analyze calendar.
- clocksource: Marking clocksource unstable Ядро переключило источник времени. Службы видят скачки времени, таймеры срабатывают не тогда, когда ожидалось.
- status=212/TIMERSLACK в systemd Код 212/TIMERSLACK: не удалось задать допуск таймеров процесса из TimerSlackNSec=. Редкий код.
- Два таймера на одну службу: срабатывания накладываются Одна служба вызывается несколькими таймерами: запуски накладываются, часть срабатываний теряется.
- Периодическая очистка неиспользуемых блоков не работает Задача очистки блоков падает: файловая система или устройство не поддерживают операцию, либо путь смонтирован не так.
Источники
-
loginctl(1)
Команда enable-linger и жизнь менеджера пользователя. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Проверено: без задержки сеанса таймеры пользователя не срабатывают после выхода.