为什么在 udev 不知情的情况下出现网络接口?
# rnn ip link show dev usb0
Device "usb0" does not exist.
# stdbuf -oL udevadm monitor -p | grep 'SUBSYSTEM\|ACTION\|e2:c9:f6:5c:37:7c' --line-buffered
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
^C
# rnn ip link show dev usb0
35: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether e2:c9:f6:5c:37:7c brd ff:ff:ff:ff:ff:ff
SUBSYSTEM=net
随着新网络接口的usb0
出现,我预计会发生事件。我该如何让 udev 处理它?
同时systemd-udevd --debug
显示网络相关消息:
seq 9553 queued, 'add' 'usb'
seq 9554 queued, 'add' 'usb'
seq 9555 queued, 'add' 'net'
seq 9556 queued, 'add' 'queues'
seq 9557 queued, 'add' 'queues'
seq 9558 queued, 'add' 'usb'
...
PROGRAM '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' /lib/udev/rules.d/73-usb-net-by-mac.rules:6
答案1
该问题是由于udevd
不在root上运行引起的网络命名空间(默认添加网络适配器)。
此外,udevadm monitor
网络命名空间也会影响其输出。