Системный таймер не запускается (неверный аргумент) при использовании времени 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= в единицах таймера.