大概说下相关背景内容:
现在的项目内部会有自己的Interface,实际就是虚拟了Linux上的物理接口,
其中有一块内容会实时监测IF的状态,具体是通过ioctl(SIOCGIFFLAGS)来获取IF状态,
之前测试的时候一直用的是ifconfig down/up来进行的,并没有发现什么不妥的地方,
但是最近在使用ifdown时,发现IF异常没有监测出来?
ifconfig是通过修改本地接口信息struct ifreq中的信息,up/down会相应的set/clr对应的flag位,
因此在调用ioctl时取得flag时也会实时更新,也就不会有上述异常发生了
但是ifdown实际上是执行了脚本,根据接口的配置信息如ifcfg-eth0,执行脚本ifdown-eth,
这样的执行结果是struct ifreq中的flag信息并没有被修正,因此IF异常就监测不出来了
阅读(1052) | 评论(0) | 转发(0) |