在 Debian(以及大多数 Linux 系统)里,“定时器频繁触发”通常不是 bug,而是配置或系统行为导致的结果。下面按常见原因逐一说明,并给出排查方法。
Debian 中常见定时器有两类:
不同种类原因不同。
OnCalendar=* 的高频配置例如:
OnCalendar=*:*:00
表示每分钟每秒都触发,看起来就像“频繁触发”。
✅ 检查:
systemctl list-timers --all
systemctl cat your.timer
OnUnitActiveSec=(单位活跃后立刻再触发)例如:
OnUnitActiveSec=1min
服务一结束就重新计时 → 看起来一直在跑。
如果 service 执行 2 分钟,而 timer 设置 1 分钟:
✅ 现象:
有些脚本或配置管理工具(Ansible / puppet)会:
systemctl enable xxx.timer
systemctl start xxx.timer
每次部署都“重启定时器”。
Debian 默认:
可配置:
Persistent=false
例如:
* * * * * /script.sh
每分钟一次,常被误以为“异常”。
anacron 用于笔记本/断电机器:
journalctl -u your.service
journalctl -u your.timer
grep CRON /var/log/syslog
systemctl list-timers 看间隔OnCalendar / OnUnitActiveSecPersistent[Timer]
OnBootSec=5min
OnUnitActiveSec=10min
→ 每 10 分钟一次,看起来很频繁,但设计如此。
如果你愿意,可以贴出:
xxx.timerxxx.servicesystemctl list-timers 输出我可以直接帮你判断是不是配置问题,还是系统行为。