如何监控Linux的Wifi状态

时间:2014-04-22 07:04:20

标签: c++ c linux wifi

我想编写一个用于监控WIFI状态的应用程序,例如,如果Linux连接到AP,我可以收到通知,告诉我Wifi已经准备就绪。对于系统,可以使用“iw”和“wpa_cli”命令。所以我该怎么做?每隔5秒创建一个用于扫描wifi的新线程?有人有更好的解决方案吗?提前谢谢。

1 个答案:

答案 0 :(得分:4)

我们目前正在经历Linux系统部分的彻底改变。您可能听说过systemd辩论? systemd将取代旧的SysV Init。在这个变化过程中,监控网络接口的方式也会发生变化。虽然今天的发行版解决方案基于init(或upstart(在Ubuntu上))触发的脚本,但即将推出的发行版将基于systemd脚本。到目前为止,我还没有使用systemd,但我在网络监控主题上找到了这个文档:http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/。所有发行版都同意他们将尽快整合systemd,因此未来的解决方案应该使用它。


systemd之前(直到今天):

在Debian / Ubuntu上,您可以将脚本添加到文件夹/etc/network/if-up.d。每次界面“up”时,都会调用该文件夹中的可执行文件。与此类似,您还可以使用文件夹if-down.dif-post-down.dif-pre-up.d。接口ID和其他参数等参数将传递给脚本。在Debian / Ubuntu上查看man interfaces以获取更多信息。

其他发行版可能有自己的机制。