Системный таймер не запускается (неверный аргумент) при использовании времени UTC

Вот мой таймер:

[Unit]
Description=Do whatever

[Timer]
OnCalendar=daily UTC

[Install]
WantedBy=timers.target

Не удается начать со следующей ошибки:

Failed to start mytimer.timer: Unit mytimer.timer failed to load: Invalid argument. See system logs and 'systemctl status mytimer.timer' for details.

грустно systemctl status не добавляет ясности в сообщение об ошибке

Но, если я уберу литерал UTC, он отлично работает:

[Unit]
Description=Do whatever

[Timer]
OnCalendar=daily

[Install]
WantedBy=timers.target

Что я делаю неправильно?

Этот документ описывает формат, принятый OnCalendar, и это показывает, что UTC можно использовать.

Да, я пытался использовать кавычки - не помогает. Я также пытался использовать нормализованную форму - тоже самое

Версии:

  • ОС: CentOS 7
  • ядро: 3.10.0-042stab113.21
  • systemd: systemd-219-19.el7_2.9.x86_64

1 ответ

Решение

С помощью OnCalendar= с любой временной меткой с суффиксом UTC требуется systemd 228 или более поздняя версия. Эта функциональность была добавлена ​​в systemd 228.

Из журнала изменений systemd:

ИЗМЕНЕНИЯ С 228:

...

  • Везде, где systemd ожидает указание метки времени в календаре (как в опциях --since= и --until= journalctl), теперь поддерживаются метки времени UTC. Временные метки с суффиксом "UTC" теперь считаются с универсальным координированным временем вместо местного часового пояса. Кроме того, временные метки теперь могут опционально указываться с точностью до секунды. Оба эти дополнения также применимы к повторяющейся спецификации событий календаря, такой как OnCalendar= в единицах таймера.
Другие вопросы по тегам