有没有办法清理 ifquery 状态,以便它反映底层设备?而不仅仅是用于维护锁的描述符?
$ ifquery --state
bond0.100=bond0.100
bond0=bond0
eth3=eth3
eth1=eth1
eth0=eth0
我已经使用 sysfs 删除了该接口,但它仍然保留在 ifquery 状态表中。
$ ifconfig bond0
bond0: error fetching interface information: Device not found
答案1
ifquery --list
按顺序显示 /etc/network/interfaces 文件中当前选中的接口。这并不表明当前正在运行的接口。
ifquery --state
按照某种顺序显示界面,截至撰写本文时尚不清楚是什么驱动了这种顺序。
该文件/run/network/ifstate
似乎维护了接口启动的顺序。每次启动接口(通过 ifup)时,它都会被附加到列表末尾。当它关闭时(通过 ifdown),它将从列表中删除。
ifconfig <interface>
这将直接进入设备本身并进行查询,它不维护整个操作系统的任何状态。如果使用 ifconfig 启动接口,则不会在状态表中维护它。
相关包是:ifupdown