跟进每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