我正在使用带有 GNU/Linux 的笔记本电脑,并且我希望某些作业能够在某些日历事件上自动运行,即使机器已关闭。
我知道我应该使用该OnCalendar=
指令,但是如何确保如果机器在那段时间关闭,相应的服务单元将在下次启动后运行?
答案1
使用Persistent=
指令(在 [Timer] 部分内)。引用手册:
Persistent=
Takes a boolean argument. If true, the time when the service unit
was last triggered is stored on disk. When the timer is activated,
the service unit is triggered immediately if it would have been
triggered at least once during the time when the timer was
inactive. This is useful to catch up on missed runs of the service
when the machine was off. Note that this setting only has an effect
on timers configured with OnCalendar=. Defaults to false.
由于所需的行为很难描述,因此这可能是可以选择的最佳关键字。
另一种选择,不使用 systemd 可以使用克隆,这是传统的增强版本计划任务现在实施为维克西克罗恩在 GNU/Linux 系统和其他系统上。你可以使用它的bootrun
选项在你的桌子上。参见例子在这里,引用:
!reset,serial(true),dayor,bootrun(0),mailto(root),lavg(.5,2,1.5)