![配置 systemd 计时器在首次运行后每小时运行一次](https://linux22.com/image/206395/%E9%85%8D%E7%BD%AE%20systemd%20%E8%AE%A1%E6%97%B6%E5%99%A8%E5%9C%A8%E9%A6%96%E6%AC%A1%E8%BF%90%E8%A1%8C%E5%90%8E%E6%AF%8F%E5%B0%8F%E6%97%B6%E8%BF%90%E8%A1%8C%E4%B8%80%E6%AC%A1.png)
我有一个每小时运行的服务(使用OnCalendar=每小时)。这很好用如果系统处于 24/7,但在退出挂起/休眠状态后变得混乱。该服务将立即运行 - 这就是我想要的 - 但随后它会在每小时的顶部再次运行,无论自上次运行以来已经过去了多少时间。
有没有办法将计时器配置为以 1 小时为间隔运行?
答案1
您可以查看详细示例systemd 计时器的 Arch-wiki。
对于您的情况,您可以使用单调定时器, 就像是:
[Timer]
OnBootSec=1min
OnUnitActiveSec=1h
这实时定时器 OnCalendar=hourly
将在启动后运行(对于错过的时间,因为Persistent=true
我猜是你的),然后将遵循固定的日期时间值,因此正如您所描述的,启动后前两次运行之间的间隔可能小于一个小时。
但是您可能不想使用单调计时器,尽管它涵盖了您想要的暂停功能,如果您不希望在重新启动时出现这种行为。Persistent=false
适合您的情况,但所有运行都将在固定时间进行。