Linux Trigger支持哪些事件触发
导读:Linux 中的 Trigger 类型与事件范围 在 Linux 语境中,“trigger”并非单一组件,而是对“基于事件自动执行动作”的统称。常见触发维度包括:时间触发、文件系统触发、输入设备触发、进程与信号触发、网络与系统事件触发以及软...
Linux 中的 Trigger 类型与事件范围
在 Linux 语境中,“trigger”并非单一组件,而是对“基于事件自动执行动作”的统称。常见触发维度包括:时间触发、文件系统触发、输入设备触发、进程与信号触发、网络与系统事件触发以及软件包管理触发等。下面按场景归纳可触发的事件类型与代表机制。
常见触发类别与代表事件
| 类别 | 典型事件 | 代表机制或工具 |
|---|---|---|
| 时间触发 | 按分钟/小时/日/月/周执行;支持**@reboot**、@hourly等预设 | cron、systemd timer |
| 文件系统触发 | 文件/目录的创建/删除/修改/移动、打开/关闭、元数据变更(权限、时间戳等) | inotify(命令行如 inotifywait/inotifywatch,或各类语言库) |
| 输入设备触发 | 按键(按下/释放/重复)、相对位移(鼠标移动)、绝对坐标(触摸屏)、触摸接触/多指手势、设备插拔 | evdev/input 子系统(/dev/input/event*) |
| 进程与信号触发 | 进程启动/退出、收到SIGINT/SIGTERM等信号 | 信号、systemd 服务状态变化 |
| 网络与系统事件触发 | 端口访问/连接触发动作、接口上线/下线等网络状态变化 | iptables 规则、systemd 网络事件 |
| 软件包管理触发 | 包安装/升级/删除时执行维护动作 | dpkg-trigger(Debian 系列) |
| 日志与监控触发 | 日志出现关键字、阈值越界(CPU/内存等) | Logwatch/ELK、自定义脚本+阈值判断 |
| 容器生命周期触发 | 容器启动/停止/重启等钩子 | Docker 事件/钩子 |
| 上述类别覆盖了绝大多数运维与开发中的“事件→动作”需求,从定时到事件驱动、从内核到用户态均可组合使用。 |
文件系统事件 inotify 支持的事件
- 访问与修改
- IN_ACCESS:文件被读取(如 open+read)
- IN_MODIFY:文件被写入(write/truncate)
- IN_ATTRIB:元数据变更(权限、时间戳、链接数、属主等)
- IN_OPEN:文件或目录被打开
- IN_CLOSE_WRITE:可写文件关闭(保存)
- IN_CLOSE_NOWRITE:只读文件或目录关闭
- 便捷掩码:IN_CLOSE = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
- 创建与删除
- IN_CREATE:被监控目录内创建子项
- IN_DELETE:被监控目录内删除子项
- IN_DELETE_SELF:被监控对象本身被删除(随后常见 IN_IGNORED)
- 移动与重命名
- IN_MOVED_FROM:条目移出监控目录(含 cookie 用于配对)
- IN_MOVED_TO:条目移入监控目录(含 cookie 用于配对)
- IN_MOVE_SELF:被监控对象本身被移动
- 便捷掩码:IN_MOVE = IN_MOVED_FROM | IN_MOVED_TO
- 其他
- IN_UNMOUNT:被监控对象所在文件系统被卸载
- IN_IGNORED:监控被移除或失效
- 常用选项:IN_ONESHOT(仅触发一次后移除监控) 说明:以上事件由内核 inotify 子系统产生,命令行工具如 inotifywait/inotifywatch 或各类语言绑定均可订阅并处理。
输入设备事件 evdev 支持的事件类型
- EV_SYN:同步标记
- SYN_REPORT:一批事件在同一时刻完成同步提交
- SYN_MT_REPORT:多点触控分组提交
- SYN_DROPPED:事件队列溢出,需重新查询设备状态
- EV_KEY:按键/按钮
- 键盘:KEY_A 等;按下/释放/自动重复(value=1/0/2)
- 工具/触控:BTN_TOOL_FINGER/PEN、BTN_TOUCH 等
- EV_REL:相对坐标
- 鼠标移动:REL_X/REL_Y;滚轮:REL_WHEEL/REL_HWHEEL
- EV_ABS:绝对坐标
- 触摸屏/平板:ABS_X/ABS_Y/ABS_PRESSURE 等
- 距离/多指:ABS_DISTANCE、ABS_MT_*(多点触控协议)
- EV_MSC:杂项
- EV_SW:开关状态(如 SW_LID 笔记本合盖)
- EV_LED:设备 LED
- EV_SND:简单发声
- EV_REP:自动重复参数
- EV_FF / EV_FF_STATUS:力反馈与状态
- EV_PWR:电源相关 这些类型构成 Linux 输入子系统的事件框架,/dev/input/event* 设备节点以 struct input_event 流的形式上报。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Trigger支持哪些事件触发
本文地址: https://pptw.com/jishu/758590.html
