“Linux trigger 报错”这个说法比较宽泛,trigger 可能出现在很多场景里,比如:
下面我先给你通用排查思路,再举几个常见场景的具体解决办法。
不要只看 “trigger error”,要看:
command 2>&1 | tee error.log
或
journalctl -xe
ps aux | grep trigger
systemctl list-units --type=trigger
很多 trigger 报错是权限问题:
ls -l /path/to/trigger
id
sudo -u 对应用户 命令
如果 trigger 调用脚本:
bash -x /path/to/script.sh
看具体哪一行失败。
报错类似:
Failed to trigger unit: Unit not found
解决:
systemctl daemon-reload
systemctl list-units --all | grep 名字
如果是 triggered by:
[Unit] 里写对了udevadm trigger
报错:
Failed to write to /sys/...
解决:
sudo udevadm control --reload
sudo udevadm trigger
⚠️ 某些 /sys 在容器里不能 trigger
现象:trigger 的任务没执行
排查:
grep cron /var/log/syslog
常见原因:
解决:
chmod +x script.sh
脚本里写绝对路径
例如:
trigger already exists
或
trigger returned error
MySQL:
SHOW TRIGGERS;
DROP TRIGGER IF EXISTS name;
PostgreSQL:
\df+ trigger_name
你可以直接贴:
我可以一步一步帮你定位并给出具体修复命令。