netplugd - network cable hotplug management daemon

  今天装了台centOS,接上网卡之后,进入x窗口,发现hardware能正确识别出该网卡是via的,初步判定物理driver没有问题(dmesg | grep eth也可判断驱动正确与否)。但是逻辑网卡并不存在(ifconfig 或 /etc/sysconfig/network-script/下都没有对应的eth0),当然mii-tool也显示没有link ok。插上cable之后,观察发现网卡的灯是亮的,但是仍然没有逻辑网卡。推测是:内核检测到了link(表现为灯亮),但是用户进程没有接受到内核的signal。于是乎,service netplugd status一把,发现状态是stop的。很自然的,start一下,果然working OK, 大功告成。呵呵,再多了解下netplugd的man手册:

 

DESCRIPTION
     netplugd is a daemon that responds to network link events from the Linux kernel, such as a network interface losing or
     acquiring a carrier signal.

     When an Ethernet-style network interface on a host is plugged into a powered-up switch, hub, or other host, the two use a
     carrier signal to establish that the link is alive.  The Linux kernel makes this information available through its
     netlink(7) interface.

 

  netplugd是一个守护进程,它主要就是检测网络接口的状态,一旦一个网卡接口接通了,那么就会调用ifup,相反down掉了就会调用ifdown。

  这里涉及两个问题,第一,用户守护进程netplugd怎么检测到网络接口的状态;第二,用户进程netplug怎么知道检测到接口变化以后要怎么做。对于第一个问题,答案就是netlink套接字,内核肯定知道网络接口的实时状态,一旦知道了状态就会用netlink通知用户空间的netplugd守护进程,内核只管通知,而根本不管用户守护进程会怎么做,从而我们知道内核提供机制,而用户守护进程提供策略,对于第二个问题,答案就是配置文件,当守护进程netplugd接收到netlink的信息后,自己只管接收到而不管具体怎么做,它只是内核机制和真正策略的二传手,真正的策略需要配置文件来定义,它实际上调用了/etc/netplug.d/netplug脚本来执行策略,这里我们知道netplugd守护进程提供机制,而脚本配置文件提供策略。从而我总结出,在linux中,一般的内核机制都会存在一个用户进程,而一个用户进程一般都会有一个配置文件,分层次地体现机制和策略的思想,用户进程作为内核机制的策略和用户配置的机制相当于一个二传手存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值