systemd.timer 来弥补错过的服务运行

systemd.timer 来弥补错过的服务运行

跟进每20天安排一次工作,

这是为了更新目的,因此可以在 20 天之内完成。但我是通过笔记本电脑进行操作的,笔记本电脑大部分时间都处于睡眠状态。因此保证执行是必须的(我读到 cron 缺乏这一点)。

我选择了 systemd.timer 而不是 crom,因为我的印象是“当系统唤醒后进入睡眠模式期间,当预定时间过去时,它甚至可以工作”

然而,事实证明我的情况并非如此。

根据其手册页,唯一的关闭选项是Persistent=

采用布尔参数。如果为 true,则上次触发服务单元的时间将存储在磁盘上。当定时器被激活时,如果服务单元在定时器不活动期间至少被触发一次,则服务单元被立即触发。尽管如此,此类触发仍会受到 RandomizedDelaySec= 所施加的延迟的影响。这对于在系统断电时追赶错过的服务运行很有用。请注意,此设置仅对使用 OnCalendar= 配置的计时器有效。

然而,我刚刚意识到我正在使用OnUnitActiveSec=20d而不是必需的OnCalendar=,所以拥有Persistent=true不会对我有帮助每20天安排一次工作案例,对吗?

计算机系统从睡眠状态唤醒后,是否可以systemd.timer赶上错过的由 安排的服务运行?OnUnitActiveSec=

附言。我所有的 systemd 包:

 libpam-systemd:amd64_249.11-0ubuntu3.6
 libsystemd0:amd64_249.11-0ubuntu3.6
 python3-systemd_234-3ubuntu2
 systemd_249.11-0ubuntu3.6
 systemd-sysv_249.11-0ubuntu3.6
 systemd-timesyncd_249.11-0ubuntu3.6

相关内容