Есть ли способ очистить состояние 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