在 Ubuntu(或一般的 Linux 系统)里,“trigger 不触发”通常不是 Ubuntu 本身的问题,而是你用的是什么 trigger、配置是否正确、以及环境是否满足触发条件。下面我按常见场景给你一个排查清单。
Ubuntu 默认使用 systemd,常见有:
systemctl start xxxsystemctl trigger.timer 触发udev triggerpath 单元触发很多 trigger 不生效是因为没 enable
systemctl status xxx.service
systemctl is-enabled xxx.service
✅ 解决:
systemctl enable xxx.service
systemctl start xxx.service
如果是 .timer 不触发:
systemctl list-timers
systemctl status xxx.timer
✅ 解决:
systemctl enable xxx.timer
systemctl start xxx.timer
path 触发依赖文件变化
[Path]
PathChanged=/var/log/test.log
常见问题:
✅ 检查:
systemctl status xxx.path
journalctl -u xxx.path
如果是硬件相关:
udevadm monitor
常见原因:
✅ 解决:
sudo udevadm control --reload
sudo udevadm trigger
Ubuntu 的 dpkg trigger 常用于软件包安装后处理。
--no-triggers 跳过查看:
dpkg-query -W -f='${Triggers-Pending}\n' package-name
✅ 手动触发:
dpkg --configure -a
systemctl status cron
检查:
crontab -l
journalctl -u cron
例如:
常见问题:
journalctl -xe
根据你用的 trigger 类型加 -u:
journalctl -u xxx.service
journalctl -u xxx.timer
journalctl -u xxx.path
请告诉我:
journalctl 输出我可以一步一步帮你定位到“为什么没触发”。