从 UDEV 规则内部运行 ip 或 ifconfig

从 UDEV 规则内部运行 ip 或 ifconfig

我正在尝试创建一个 udev 规则,我想从中调用 ifconfig 或 ip 来更改 USB 内核网络接口的 IP 地址。为此,我创建了:

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", RUN+="/home/user/nw-setup.sh 2&>>/home/user/udev.log"

nw-setup.sh我只是有:

!/bin/bash
echo "nw-setup: Starting." > /dev/kmsg
/sbin/ifconfig usb0 172.16.248.12 2&>>/home/user/udev.log
/sbin/ip addr add 172.16.248.12/24 dev usb0

从 dmesg 中可以看到,每次插入 USB 设备时,我都可以看到“nw-setup:正在启动”。信息。因此,我确信 udev 规则按我的预期工作。但是,ifconfig 或 ip 命令不起作用(未为 usb0 设置 IP)。如果我复制其中任何一个命令并将其粘贴到控制台,我可以直接看到 IP 已配置为 usb0。

对于如何解决我遇到的这个问题,我们非常感谢任何帮助。

编辑当我从 nw-setup.sh 记录“ip link”时,我准备好 usb0 接口:

10: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default q0
    link/ether 92:7b:39:b9:04:99 brd ff:ff:ff:ff:ff:ff

相关内容