在 Ubuntu(或相关 Linux 系统)里,“trigger 不触发”是个比较常见但原因很多的问题。你没说是哪种 trigger,我先按最常见的几类来解释,你可以对号入座;如果是指 systemd trigger / udev trigger / apt trigger / cron trigger,也可以直接告诉我。
.trigger 或 systemctl trigger).trigger 不是服务,不会自己跑Wants= / Requires= / PartOf= 显式触发systemctl trigger xxx.trigger
✅ 检查:
systemctl list-triggers
systemctl show xxx.trigger
WantedBy= 或对应依赖例如:
[Unit]
Description=My Trigger
[Trigger]
Type=path
PathChanged=/var/lib/myapp/
[Install]
WantedBy=multi-user.target
如果没 systemctl enable,就不会触发。
✅ 解决:
systemctl enable xxx.trigger
systemctl start xxx.trigger
PathExists 文件不存在PathChanged 文件没变化✅ 调试:
journalctl -u xxx.trigger
systemctl status xxx.trigger
udevadm control --reload
udevadm trigger
SUBSYSTEM 不对ACTION 不匹配✅ 测试:
udevadm monitor
✅ 强制触发:
sudo dpkg --configure -a
sudo apt install -f
systemctl status cron
不管哪种 trigger,先确认:
你可以直接告诉我:
journalctl 输出我可以帮你精确指出“为什么没触发”。