“Linux trigger 失效”这个说法比较笼统,因为 trigger 在不同场景里含义完全不同。下面按常见场景给你梳理一下原因和排查思路,你可以对号入座。
systemd 单元 trigger 没生效比如你改了 .service、.mount、.path 等,但没重新加载。
原因
systemctl daemon-reload
Condition* / Assert*)排查
systemctl status xxx
journalctl -u xxx
systemctl show xxx | grep -i trigger
udevadm trigger 没反应udevadm trigger
常见原因
/etc/udev/rules.d/udev 未重启排查
udevadm monitor
udevadm test /sys/class/xxx
例如 inotifywait / systemd.path
原因
max_user_watches 超限排查
cat /proc/sys/fs/inotify/max_user_watches
原因
CREATE TRIGGERINSERT IGNORE / REPLACE 跳过排查
SHOW TRIGGERS;
/sys/class/gpio)90% 的 trigger 失效是因为:
如果你能告诉我:
我可以直接帮你精准定位问题。