“Ubuntu Trigger” 这个说法比较宽泛,不同场景下含义不同。下面我按最常见的几种情况给你说明,你可以对号入座;如果指的是别的东西,也告诉我具体场景。
这是最常见的“trigger”用法(定时触发任务)。
# /etc/systemd/system/foo.timer
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
优化建议:
* 秒级触发OnCalendar 而不是 watch + sleep[Service]
Nice=19
IOSchedulingClass=idle
systemctl list-timers
systemctl status foo.timer
journalctl -u foo.service
udevadm trigger
udevadm trigger --subsystem-match=block
/etc/udev/rules.d/
udevadm settle 控制等待粒度sudo nano /etc/apt/apt.conf.d/20auto-upgrades
常见优化:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "0"; # 关闭自动升级
避免 trigger 卡死:
sudo dpkg --configure -a
例如 GitHub Actions:
on:
schedule:
- cron: "0 3 * * *"
优化:
needs 控制 trigger 依赖常见瓶颈:
优化示例:
flock -n /tmp/trigger.lock mytask.sh
我可以直接给你针对性配置。