OpenWrt中的热拔插Hotplug.d中的脚本

OpenWrt中的热拔插Hotplug.d中的脚本

基本概念

  • hotplug:热插拔机制,用于在设备或接口状态发生变化时(如插入、拔出、网络连接状态改变等),自动触发相应的处理动作。

  • hotplug.d:OpenWrt中用于存放热插拔事件处理脚本的目录。这些脚本根据不同的事件类型被组织在不同的子目录下,当相应事件发生时,系统会自动调用这些脚本。

工作原理

  1. 内核事件触发

    • 当系统中的硬件设备状态发生变化(如USB设备插入或拔出、网络接口状态改变等),Linux内核会产生一个uevent事件。

    • 这些事件通过netlink套接字发送到用户空间。

  2. procd监听事件

    • OpenWrt的procd守护进程负责监听这些uevent事件。

    • procd会根据/etc/hotplug.json文件中的配置规则来处理这些事件。

  3. 调用hotplug-call脚本

    • 根据hotplug.json的配置,procd会调用/sbin/hotplug-call脚本,并将事件的$SUBSYSTEM变量作为参数传递给该脚本。

    • /sbin/hotplug-call脚本会根据$SUBSYSTEM变量,找到对应的/etc/hotplug.d/子目录,并按字母顺序执行该子目录下的所有脚本。

  4. 脚本执行

    • 每个脚本在执行时,会接收到一系列与事件相关的环境变量,如ACTION(事件类型,如addremove)、DEVPATH(设备路径)、INTERFACE(接口名称)等。

    • 脚本可以根据这些环境变量获取事件的详细信息,并执行相应的处理逻辑。

目录结构

  • /etc/hotplug.d/:主目录,包含多个子目录,每个子目录对应一类事件。

    • block:处理块设备(如USB存储设备)的事件。

    • iface:处理网络接口的事件。

    • net:处理网络设备的事件。

    • wireless:处理无线设备的事件。

    • 其他子目录可能根据系统版本和配置而有所不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值