Ubuntu Ubuntu Linux

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

  • Обновлено
  • Чтение ≈ 3 минуты

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

Таймер systemd в Ubuntu активен, но задача не отрабатывает после спящего режима. У календарных и интервальных таймеров разная логика; настройка Persistent= относится к пропущенным календарным срабатываниям во время неактивности таймера, а не гарантирует повтор каждого пропущенного интервала сна.

В этой статье
  1. Что означает проблема и кому подходит инструкция
  2. Возможные причины и отличительные признаки
  3. Диагностика и пошаговое устранение
  4. Как убедиться, что неисправность устранена
  5. Если результат не получен

#Что означает проблема и кому подходит инструкция

Таймер systemd в Ubuntu активен, но задача не отрабатывает после спящего режима. У календарных и интервальных таймеров разная логика; настройка Persistent= относится к пропущенным календарным срабатываниям во время неактивности таймера, а не гарантирует повтор каждого пропущенного интервала сна.

#Возможные причины и отличительные признаки

Возможная причинаКак узнатьЧто делать
Таймер календарный и задача уже выполнялась после пробужденияПри долгом сне несколько событий могут свестись к одному запуску.journalctl показывает один запуск после возврата.Проверить ожидаемую семантику и журнал службы.
Таймер монотонныйOnUnitActiveSec использует монотонные часы, которые могут останавливаться во сне.В unit нет OnCalendar, но есть OnUnitActiveSec.Определить, нужен календарный или интервальный режим.
Компьютер не должен просыпаться самБез WakeSystem таймер обычно не будит устройство.Во сне запуск не происходит, после него задача работает.Уточнить необходимость пробуждения и поддержку аппаратуры.

#Диагностика и пошаговое устранение

  1. 1. Различите таймер и вызываемую службуВ Ubuntu откройте терминал, подставьте правильное имя вместо ИМЯ.timer. Проверьте list-timers --all: поля NEXT, LAST и ACTIVATES покажут следующее время, предыдущий запуск и службу. Не считайте active (waiting) признаком успешной работы скрипта.
  2. Только чтение
    Linux · Терминал (Bash)Команда
    Только чтение. Для пользовательского таймера добавьте --user ко всем systemctl.
    systemctl list-timers --all
    systemctl status ИМЯ.timer --no-pager
    systemctl cat ИМЯ.timer
  1. 2. Узнайте, какой тип расписания указанВ systemctl cat ищите OnCalendar, OnBootSec, OnUnitActiveSec, Persistent, WakeSystem и RandomizedDelaySec. Календарный таймер привязан к часам; монотонный — к длительности и поведению часов. На большинстве ноутбуков таймер без WakeSystem не должен пробуждать машину.
    Linux · Терминал (Bash)Команда
    Если параметр не поддерживается данной версией systemd, сверяйтесь с systemctl cat.
    systemctl show ИМЯ.timer -p ActiveState -p Unit -p NextElapseUSecRealtime -p NextElapseUSecMonotonic
  1. 3. Проверьте события до сна и после пробужденияДля службы с тем же именем (ИМЯ.service, если в таймере не задан Unit= другой) посмотрите журнал и отметки времени запуска. Для системного менеджера команды без --user; для пользовательского нужны --user. Промежуток сна сопоставьте с журналами ядра и journalctl -b. Учтите, что системные часы могли быть скорректированы.
    Linux · Терминал (Bash)Команда
    Отсутствие слов в журнале не доказывает, что сна не было.
    journalctl -u ИМЯ.service -b --no-pager -n 100
    journalctl -b --no-pager | grep -Ei "suspend|resume|sleep"
  1. 4. Выберите правильную семантику пропускаЕсли нужно выполнить пропущенное календарное задание после того, как таймер был выключен, изучите Persistent=true в секции [Timer]. Но во время непрерывного сна активный OnCalendar обычно запускает службу после пробуждения один раз, даже при нескольких пропусках. Для интервального задания Persistent= не действует. Меняйте только собственный unit через sudo systemctl edit ИМЯ.timer, сохранив предыдущие параметры.
    Linux · Терминал (Bash)Команда
    Не меняйте расписание до понимания требования: допуск одного запуска или необходимость всех отдельных запусков.
    systemctl cat ИМЯ.timer
  1. 5. Не включайте WakeSystem без необходимостиДля заданий, которые должны будить устройство, настройка WakeSystem=true в [Timer] возможна на поддерживаемом оборудовании и чаще в системном менеджере, но может заметно повлиять на энергопотребление. Проверьте документы изготовителя и политику сна; ноутбуки и виртуальные машины не обязаны поддерживать пробуждение таймером. У обычного пользователя возможность ограничена.
  2. Здесь лишь просмотр: включение пробуждения без согласования не предлагается
    Linux · Терминал (Bash)Команда
    Здесь лишь просмотр: включение пробуждения без согласования не предлагается.
    systemctl cat ИМЯ.timer
  1. 6. Проверьте ручной тест службы отдельно от расписанияДо изменения таймера согласуйте безопасный одиночный тест systemctl start ИМЯ.service: он может отправить письма, обновить базу или удалить временные файлы, поэтому без понимания задания не выполняйте. После планового пробуждения сверяйте LAST в list-timers и конкретный результат службы. Если failed, причина в самой службе, а не обязательно в расписании.
    Linux · Терминал (Bash)Команда
    Системный таймер; для пользовательского используйте варианты --user.
    systemctl list-timers --all
    systemctl status ИМЯ.service --no-pager
    journalctl -u ИМЯ.service -b --no-pager -n 60

#Как убедиться, что неисправность устранена

Корректность подтверждена двумя фактами: таймер показал ожидаемое событие после реального сна, а вызываемая служба завершила свою задачу. Считать одно срабатывание вместо множества ошибкой можно только когда расписание действительно обязано обрабатывать каждый пропуск.

#Если результат не получен

Не повторяйте опасные действия наугад. Сохраните точную формулировку ошибки, вывод диагностики без секретов, версию Ubuntu и данные о затронутом компоненте. Верните лишь собственные изменения из резервной копии; если затронута загрузка, диски или рабочий сервер, воспользуйтесь консолью восстановления либо помощью администратора.

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

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

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