这是我的计时器:
[Unit]
Description=Do whatever
[Timer]
OnCalendar=daily UTC
[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)
它无法启动并出现以下错误:
Failed to start mytimer.timer: Unit mytimer.timer failed to load: Invalid argument. See system logs and 'systemctl status mytimer.timer' for details.
Run Code Online (Sandbox Code Playgroud)
遗憾的是,systemctl status错误消息没有任何清晰度
但是,如果我删除 UTC 文字,它就可以正常工作:
[Unit]
Description=Do whatever
[Timer]
OnCalendar=daily
[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
该文档描述了 接受的格式OnCalendar,并且表明可以使用UTC。
是的,我尝试使用引号 - 没有帮助。我也尝试使用标准化形式 - 同样的事情
版本:
OnCalendar=与任何后缀为 的时间戳一起使用UTC需要 systemd 228 或更高版本。此功能已在 systemd 228 中添加。
来自 systemd变更日志:
228 的变化:
...
- 无论何时 systemd 需要日历时间戳规范(例如在 Journalctl 的 --since= 和 --until= 开关中),现在都支持 UTC 时间戳。以“UTC”为后缀的时间戳现在被视为采用协调世界时而不是本地时区。此外,现在可以选择以亚秒级精度指定时间戳。这两个新增内容也适用于循环日历事件规范,例如计时器单位中的 OnCalendar=。