在 Linux 里,“trigger 监听”要看你指的是哪一类 trigger,常见有下面几种场景。我分别说明,你对照自己的需求来看。
这是 Linux 下“定时 trigger”的标准方式。
监听/查看 trigger 是否触发:
systemctl list-timers
示例:
# /etc/systemd/system/backup.timer
[Unit]
Description=Backup Trigger
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
systemctl enable backup.timer
systemctl start backup.timer
查看触发日志:
journalctl -u backup.timer
journalctl -u backup.service
✅ 特点:
用于监听文件或目录被修改、创建、删除。
inotifywait -m /data
监听具体事件:
inotifywait -m -e modify,create,delete /data
inotifywait -m -e close_write /data |
while read path action file; do
echo "$file changed"
done
✅ 常用于:
监听 USB / 硬盘 / 设备插拔。
udevadm monitor
# /etc/udev/rules.d/99-usb.rules
ACTION=="add", SUBSYSTEM=="usb", RUN+="/opt/usb.sh"
udevadm control --reload
用于底层系统事件(如电源、网络)。
udevadm monitor --kernel --property
或:
evtest /dev/input/eventX
某些驱动暴露:
/sys/class/leds/xxx/trigger
查看:
cat /sys/class/leds/xxx/trigger
写入触发:
echo heartbeat > /sys/class/leds/xxx/trigger
请告诉我你指的是哪一种:
我可以直接给你可运行的示例 + 监听方法。