用 NM-dispatcher 实现 WiFi 开关的自动控制 - sbw Blog

用 NM-dispatcher 实现 WiFi 开关的自动控制

来源: 石博文博客 | 浏览: 163 | 评论: 0 发表时间: 2019-04-01

平时在家用的笔记本由于从来没移动过位置,为了网络稳定就直接插上有线使用了。由于无线网络开着会一直扫描 WiFi 热点,也会占用一些资源,于是我就把无线开关直接关掉了。但是偶尔笔记本也要带出去或者在其它地方用一下,这时候拔掉网线后又要去打开无线网络的开关,就很烦。于是索性直接利用 NetworkMangaer 的 dispatcher 功能:实现了在有线插入时,自动关掉无线;有线网络拔出时,自动打开无线这个功能。



NetworkManager-dispatcher.service

NetworkManagerLinux发行版本中比较强大好用的网络管理套件了,它提供了一个NetworkManager-dispatcher服务,可以用来添加一些“钩子”脚本,在网络发生特定变化的时候进行一些自定义操作。例如在网络连接成功后自动连接VPN等。


首先执行:

查看一下这个分发服务的运行状态,默认情况下这个服务应该是未激活的。使用:

来开启这个服务。服务开启后,当网络状态发生变化的时候,就会执行/etc/NetworkManager/dispatcher.d/目录下的脚本。我们在这个目录下新建一个wlan_auto_toggle.sh的 Shell 脚本,并写入以下内容:


其中$1是发生变化的设备名称,有线网卡在不同机器的可能不一样,一般的命名为ethX或者enpXsY这种形式。而$2就是状态,我们只需要简单的做个判断,在有线设备激活的时候执行命令关闭 WiFi,在有线设备停用的时候开启 WiFi 即可。使用:

可以查看这个服务的执行日志。




没有人评论过此文,还不快抢个沙发
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml