我想编写一个用于监控WIFI状态的应用程序,例如,如果Linux连接到AP,我可以收到通知,告诉我Wifi已经准备就绪。对于系统,可以使用“iw”和“wpa_cli”命令。所以我该怎么做?每隔5秒创建一个用于扫描wifi的新线程?有人有更好的解决方案吗?提前谢谢。
答案 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.d
,if-post-down.d
,if-pre-up.d
。接口ID和其他参数等参数将传递给脚本。在Debian / Ubuntu上查看man interfaces
以获取更多信息。
其他发行版可能有自己的机制。