задание таймера не выполняется после выхода из сна — как найти причину и исправить

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

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

Таймер systemd в Arch Linux не выполняет ожидаемое действие после выхода из сна. Важна разница между календарным OnCalendar и монотонным OnBootSec/OnUnitActiveSec: во сне они ведут себя по-разному.

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

#Симптом и границы применимости

Таймер systemd в Arch Linux не выполняет ожидаемое действие после выхода из сна. Важна разница между календарным OnCalendar и монотонным OnBootSec/OnUnitActiveSec: во сне они ведут себя по-разному.

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

Возможная причинаКак узнатьЧто делать
Монотонный таймер ещё не наступилМонотонный отсчёт в обычной настройке приостанавливается во время сна.После пробуждения NEXT значительно позже ожидаемого.Уточнить правильность выбранного типа таймера.
Задача запускалась, но завершилась ошибкойТаймер сработал, однако обслуживаемая service-единица не выполнила работу.Последний запуск есть в журнале, но есть exit-code/ошибки прав.Диагностировать сервис, а не только таймер.
Семантика пропущенных событийCalendar timer после сна запускается один раз при наличии пропущенных сроков, не по одному на каждый.Ожидают три запуска за три пропущенных часа, произошёл один.Учесть ограничение поведения; Persistent не означает повторение всех запусков.

#Подробная диагностика и безопасные действия

  1. 1. Найдите таймер и цельОткройте терминал; отметьте имя нужного .timer и связанного .service. Системные таймеры показываются systemctl, пользовательские — systemctl --user. Если таймера нет в списке, сначала определите, установлен ли unit.
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    systemctl list-timers --all --no-pager
    systemctl status ИМЯ.timer --no-pager
  1. 2. Посмотрите расписание и последний запускПроверьте значения NEXT, LAST, Unit и Trigger. Если задан OnCalendar, время сравнивайте с часовым поясом системы, а не с местным временем браузера. systemctl cat показывает исходный файл с переопределениями.
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    systemctl cat ИМЯ.timer
    systemctl show ИМЯ.timer -p NextElapseUSecRealtime -p LastTriggerUSec -p Triggers
  1. 3. Проверьте тип таймера и настройки снаИщите OnCalendar, OnBootSec, OnUnitActiveSec, Persistent и WakeSystem. Persistent=true полезно для пропущенного календарного события, когда таймер был неактивен; оно не превращает монотонный таймер в будильник.
  2. Диагностическая команда в терминале Arch Linux, без изменения настроек
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    systemctl show ИМЯ.timer -p TimersCalendar -p TimersMonotonic -p Persistent -p WakeSystem
  1. 4. Прочитайте журнал таймера и службыУстановите, было ли запланированное срабатывание и чем закончилось выполнение. Для пользовательского таймера подставьте --user в systemctl и journalctl; журналы пользовательских служб читаются от соответствующего пользователя.
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    journalctl -b -u ИМЯ.timer --no-pager -n 70
    journalctl -b -u ИМЯ.service --no-pager -n 70
  1. 5. Проверьте часы и часовой поясСинхронизация системных часов после сна может изменить расчёт OnCalendar. При неправильном часовом поясе сверяйте расписание с systemd-analyze calendar, передав точно выражение из unit, например daily. Не меняйте NTP по одному ошибочному запуску.
  2. Диагностическая команда в терминале Arch Linux, без изменения настроек
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    timedatectl status
    systemd-analyze calendar daily
  1. 6. Проверяйте исправление вне снаЕсли цель таймера — запускать задачу каждый календарный день и unit действительно использует OnCalendar, отредактируйте только нужную настройку через systemctl edit, предварительно скопировав исходный текст. Для обратимого теста разумно отдельно запускать .service вручную, если действие безопасно.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Запуск .service может менять данные; применять лишь к безопасной и согласованной задаче.
    sudo systemctl start ИМЯ.service
    systemctl status ИМЯ.service --no-pager

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

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

#Как понять, что проблема устранена

Повторите исходное действие, из-за которого возникла неисправность, и сверяйте не только код завершения команды, но и прикладной результат. Сохраните вывод последней диагностической команды и записи журнала до и после исправления. Если ошибка повторяется, верните только изменённую настройку из резервной копии и передайте специалисту точный симптом, имя программы/службы, версию системы и необходимые фрагменты журнала без паролей и закрытых ключей.

#Что делать, если не помогло

Не применяйте случайные советы для другого дистрибутива: в Arch Linux особенно опасны частичные обновления пакетов, а в Rocky Linux — отключение SELinux или неконтролируемый перезапуск системных служб. Остановитесь после неуспешного безопасного шага, зафиксируйте фактическое сообщение и вернитесь к соответствующей причине. Для загрузки, разделов диска и единственного удалённого подключения используйте резервную копию и локальную консоль.

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

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

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