You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

systemd定时器配置异常:期望每2.5小时运行一次却每2小时执行

systemd定时器配置异常:期望每2.5小时运行一次却每2小时执行

嘿,我来帮你梳理下这个问题!首先得明确:你当前的OnCalendar=00/2:30写法,和你想要的“每2.5小时运行一次”完全不是一个意思。

为什么原配置不对?

systemd的OnCalendar语法里,/间隔符是针对单个时间字段生效的。00/2:30会被解析成:从00点开始,每2小时,在第30分钟时运行。也就是执行时间会是00:30、02:30、04:30、06:30... 这就导致你看到的“每2小时运行一次”,而且时间点还和你预期的(00:00、02:30、05:00...)不符。

正确的配置方案

因为2.5小时的间隔没法用OnCalendar的单间隔规则直接表达,最可靠的方式是枚举所有符合要求的时间点——毕竟24小时内,符合“间隔2.5小时”的时间点是固定的:00:00、02:30、05:00、07:30、10:00、12:30、15:00、17:30、20:00、22:30。

修改后的timer文件如下:

[Unit]
Description=Run every 2.5 Hours

[Timer]
# 枚举所有2.5小时间隔的时间点
OnCalendar=*-*-* 00:00,02:30,05:00,07:30,10:00,12:30,15:00,17:30,20:00,22:30:*
Persistent=true

[Install]
WantedBy=timers.target

额外说明

如果你不想枚举这么多时间点,也可以尝试结合OnUnitActiveSec=9000s(因为2.5小时=9000秒),但这种方式依赖上一次任务的执行时间,如果系统重启或任务中断,可能会导致后续执行时间偏移。而枚举固定时间点的方式更稳定,能严格按照你想要的整点/半点循环执行。

备注:内容来源于stack exchange,提问作者ni_hao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:49:36