配置 systemd 计时器在首次运行后每小时运行一次

配置 systemd 计时器在首次运行后每小时运行一次

我有一个每小时运行的服务(使用OnCalendar=每小时)。这很好用如果系统处于 24/7,但在退出挂起/休眠状态后变得混乱。该服务将立即运行 - 这就是我想要的 - 但随后它会在每小时的顶部再次运行,无论自上次运行以来已经过去了多少时间。

有没有办法将计时器配置为以 1 小时为间隔运行?

答案1

您可以查看详细示例systemd 计时器的 Arch-wiki

对于您的情况,您可以使用单调定时器, 就像是:

[Timer]
OnBootSec=1min
OnUnitActiveSec=1h

实时定时器 OnCalendar=hourly将在启动后运行(对于错过的时间,因为Persistent=true我猜是你的),然后将遵循固定的日期时间值,因此正如您所描述的,启动后前两次运行之间的间隔可能小于一个小时。

但是您可能不想使用单调计时器,尽管它涵盖了您想要的暂停功能,如果您不希望在重新启动时出现这种行为。Persistent=false适合您的情况,但所有运行都将在固定时间进行。

相关内容