这是我的计时器:
[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=。