Debian 定时器(systemd timers)支持多种调度策略,这些策略决定了定时器何时触发其关联的服务。以下是一些主要的调度策略:
OnCalendar
OnCalendar=*-*-* *:00:00 每天午夜触发。OnBootSec
OnBootSec=30s 系统启动后30秒触发。OnStartupSec
OnStartupSec=10s 服务启动后10秒触发。OnUnitActiveSec
OnUnitActiveSec=5min 服务变为活动状态后5分钟触发。OnUnitInactiveSec
OnUnitInactiveSec=1h 服务变为非活动状态后1小时触发。RandomizedDelaySec
RandomizedDelaySec=30s 在30秒内随机选择延迟时间。Persistent
Persistent=true 确保即使在关机状态下也能触发。AccuracySec
AccuracySec=1s 定时器的触发时间最多偏离1秒。UnitStartSec
UnitStartSec=2s 服务启动前等待2秒。UnitStopSec
UnitStopSec=5s 服务停止前等待5秒。WatchdogSec
WatchdogSec=30s 如果服务在30秒内没有响应,则认为失败。你可以组合使用上述策略来实现更复杂的调度逻辑。例如:
[Timer]
OnCalendar=*-*-* *:00:00
RandomizedDelaySec=30s
Persistent=true
这个定时器每天午夜触发,并且在触发前有最多30秒的随机延迟,同时确保即使在关机状态下也能触发。
通过合理使用这些调度策略,你可以灵活地控制Debian系统中定时器的触发行为。