Debian Debian 12Debian 13

Debian Linux: задание таймера не выполняется после выхода из сна

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

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

Таймер systemd Debian срабатывает до перехода в сон, но не выполняет ожидаемое действие после пробуждения. Таймеры OnCalendar и монотонные OnUnitActiveSec работают по-разному; не каждый пропущенный запуск должен автоматически догоняться.

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

#Когда возникает ошибка в Debian и какие условия важны

Таймер systemd Debian срабатывает до перехода в сон, но не выполняет ожидаемое действие после пробуждения. Таймеры OnCalendar и монотонные OnUnitActiveSec работают по-разному; не каждый пропущенный запуск должен автоматически догоняться.

#Причины и как отличить их друг от друга

Возможная причинаКак узнатьЧто делать
Таймер пропущен во время снаВ журнале виден уход в suspend, затем отсутствует ожидаемое событие.Сверить расписание и Persistent= для календарного таймера.
Служба остаётся активнойАктивированный service с RemainAfterExit=yes не запускается повторно.Проверить состояние вызываемого сервиса.
Не готова сеть после выхода из снаТаймер сработал, но запрос сервиса завершился ошибкой связи.Проверить журнал именно вызванной службы и зависимости.

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

  1. 1. Уточните имя timer и фактические моменты выполненияВ терминале Debian выполните list-timers --all. Столбцы NEXT, LEFT, LAST и PASSED показывают планирование, а не успешное завершение задания. Подставьте точное имя ИМЯ.timer и не путайте его с ИМЯ.service; иногда Unit= указывает совершенно другое имя службы.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl list-timers --all --no-pager
    systemctl status ИМЯ.timer --no-pager
  1. 2. Прочитайте календарные или монотонные правилаОткройте unit командой cat, найдите [Timer] и поля OnCalendar, OnBootSec, OnUnitActiveSec, AccuracySec, Persistent и WakeSystem. Для OnCalendar можно использовать systemd-analyze calendar с реальным выражением; не меняйте его, пока не проверите часовой пояс сервера.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl cat ИМЯ.timer
    timedatectl
  1. 3. Сопоставьте журнал сна с журналом заданияПосмотрите journalctl для timer и активируемой службы в текущей загрузке. Вывод покажет, активировался ли таймер и как закончилась сама программа; упоминание timer без запуска service не равно успеху. Для системного сна ищите сообщения suspend/resume, учитывая возможную недоступность прошлого журнала.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    journalctl -b -u ИМЯ.timer -u ИМЯ.service --no-pager -n 120
    journalctl -b --grep="suspend|resume" --no-pager -n 80
  1. 4. Определите, допустимо ли выполнение пропущенной задачиЕсли используется OnCalendar и задача должна догоняться после выключения, изучите Persistent=yes. Это касается только календарных таймеров, которые были неактивны в момент события; для каждого монотонного интервала включение Persistent не является универсальным исправлением.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl show ИМЯ.timer -p NextElapseUSecRealtime -p NextElapseUSecMonotonic
    systemctl show ИМЯ.service -p ActiveState -p RemainAfterExit
  1. 5. Устраните зависание активируемой службыЕсли service остаётся active после успешного одноразового выполнения, проверьте Type=oneshot и RemainAfterExit. Система не обязана запускать уже активную службу повторно. Не меняйте RemainAfterExit без понимания последствий: перед правкой сохраните исходный unit и результат его последнего исполнения.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl cat ИМЯ.service
    systemctl status ИМЯ.service --no-pager
  1. 6. Проверьте изменения без принудительного снаДля собственного таймера используйте sudo systemctl edit ИМЯ.timer и укажите только обоснованную настройку в [Timer], например Persistent=yes для OnCalendar. Затем проверьте параметры и дождитесь штатного события. Не запускайте sleep/suspend на удалённом производственном сервере ради теста.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Файл переопределения позволяет удалить собственное изменение без правки пакета.
    sudo systemctl edit ИМЯ.timer
    systemctl cat ИМЯ.timer

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

  1. 7. Подтвердите выполнение сервисом нужной операцииПосле реального пробуждения проверьте LAST в list-timers и журнал запускаемой службы. Только запись об успешно выполненной операции считается результатом. Если выполнен timer, но служба сообщает ошибку DNS или базы, исправлять нужно готовность нужной зависимости.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl list-timers --all --no-pager
    journalctl -u ИМЯ.service -b --no-pager -n 45

#Проверка результата и действия при неуспехе

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

Так эту ошибку тоже называют

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

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