Серверы и ИИ: практическое применение
Расписание systemd: календарное время, прошедший интервал и окно точности
«Каждое утро» и «через час после завершения» описывают разные требования. OnCalendar использует календарные выражения и часы реального времени. Относительные параметры вроде OnUnitInactiveSec определяют другую точку отсчёта. Подмена одного требования другим изменяет поведение при перезагрузке, длительной работе и корректировке системных часов.
Для календарного задания фиксируют согласованную временную зону. Справочник systemd.time описывает именованные зоны и явные обозначения времени; синтаксис выражения проверяют для установленной версии. Если рабочий календарь уже принадлежит площадке, его нельзя молча менять из-за зоны рабочего места администратора или формата пользовательского отчёта.
AccuracySec допускает окно срабатывания для объединения пробуждений. RandomizedDelaySec добавляет отдельную случайную задержку для распределения нагрузки. Это разные механизмы, и указанный календарный момент не означает гарантированное выполнение прикладной работы ровно в эту секунду. Длительность запуска службы тоже входит в наблюдаемую задержку результата.
В приёмке сопоставляют нормализованное расписание, реальный trigger и время завершения задания. Проверяют холодный старт с неверными часами и согласованный сценарий их синхронизации. Исходные временные метки сохраняют; перевод для отображения выполняют отдельно. Таймер обслуживания не используют как обещание жёсткого реального времени.
Основание — Official systemd manual edition262, cited sections only, разделы systemd.timer OnCalendar; monotonic timers; AccuracySec; RandomizedDelaySec; systemd.time Calendar Events; timezone syntax. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Материал относится к справочникам systemd 262. Установленные Linux-дистрибутив, сборка systemd и возможности ядра не проверялись; изменения служб и настроек не выполнялись.