我需要为经常关闭的机器编写一个计时器单元(例如经典桌面设置)。该定时器单元需要定期激活,但不是很频繁(例如每周、每月)。
我确实找到了一些方法,但它们都不适合:
根据手册页,如果配置的时间点是过去的OnBootSec
,则OnStartupSec
只会激活和指令。我还发现了一些使用这些的组合OnActiveSec
来定义常规事件的示例。问题是:每次机器启动时,定时器都会激活配置的单元。如果你有一个应该每周/每月运行一次的计时器,那就太频繁了。例如:我不想让我的日志一天轮换三遍!
用OnCalendar
指令解决。如果机器在配置的时间点(主要是午夜,因为如果您在时间规范中省略小时,它默认为 00:00:00)断电,则下次启动后将不会激活计时器。至少我是这样得到的。那正确吗?
如果配置的时间已经过去,是否会在下次启动后立即激活带有日历事件的计时器?如果没有,是否有解决方法来获得这种行为?
小智 15
此功能已经实现在使用systemd(版本> = 212)Persistent=
的指令,所以你只需要插入Persistent=true
在单元文件,而使用OnCalendar=
指令建立的日期/时间运行作业。
持久=
接受一个布尔参数。如果为 true,则上次触发服务单元的时间存储在磁盘上。当定时器被激活时,如果在定时器不活动的时间期间服务单元至少被触发一次,则立即触发该服务单元。这对于在机器关闭时赶上错过的服务运行很有用。请注意,此设置仅对使用 OnCalendar= 配置的计时器有效。
归档时间: |
|
查看次数: |
1943 次 |
最近记录: |