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