在 Ubuntu(以及广义的 Linux)里,**“trigger 延迟”**通常出现在 systemd 场景中(unit 的 TriggeredBy、.timer trigger、socket/device/path trigger 等),也可能指 udev trigger、桌面/应用 trigger 或 cron/anacron 类触发延迟。下面按常见原因系统说明。
systemctl status 显示 start request repeated too quicklysystemctl reset-failed <unit>
并检查 StartLimitIntervalSec / StartLimitBurst
.timer 单元触发延迟通常因为:
OnCalendar + Persistent=true 会在开机后补触发查看:
systemctl list-timers
trigger 被阻塞在依赖单元上:
After=network-online.target
Requires=foo.service
如果 foo.service 启动慢,trigger 会延迟。
排查:
systemctl status <triggering-unit>
journalctl -u <unit>
udevadm trigger 是异步的查看:
udevadm monitor
journalctl -u systemd-udevd
path.unit 依赖 inotifyanacron 用于关机补跑,可能延迟数小时timedatectl
powertop 节能# 看 trigger 状态
systemctl list-units --type=trigger
# 看 timer
systemctl list-timers --all
# 看日志
journalctl -b -u <unit>
# 重置失败
systemctl reset-failed
我可以给你针对性解决方案,甚至直接帮你改 unit 文件。