使用 UTC 时间时,systemd 计时器启动失败(参数无效)

使用 UTC 时间时,systemd 计时器启动失败(参数无效)

这是我的计时器:

[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 需要日历时间戳规范(例如 journalctl 的 --since= 和 --until= 开关),就会支持 UTC 时间戳。带有“UTC”后缀的时间戳现在被视为采用协调世界时,而不是本地时区。此外,现在还可以选择以亚秒精度指定时间戳。这两项新增功能也适用于定期日历事件规范,例如以计时器为单位的 OnCalendar=。

相关内容