> 文档中心 > MacBook利用sleepwatcher实现开盖自动联网

MacBook利用sleepwatcher实现开盖自动联网

目录

  • 1.实现原理
  • 2.安装sleepwatcher工具
  • 3.编写唤醒服务脚本

在使用MacBook过程中,发现每次开盖都需要连校园网,感觉很麻烦,于是用python写了个脚本实现了自动连接wifi、自动登录校园网的功能。但是还是又个小缺陷,每次电脑合盖后,电脑会自动休眠,自动断网,再开盖的时候,又要重新手动点击登录程序,还是挺麻烦的,所以决定进一步优化一下。

1.实现原理

在 Mac 中可以设置开机自启应用程序,但无法在 Mac 屏幕锁定后唤醒时自启应用程序。Mac 睡眠后,远程网络连接等应用程序会断掉。这个时候就需要借助第三方工具sleepwater 来解决这个问题了,通过sleepwatcher可以设置Mac在睡眠或唤醒时,需要启动的服务,或者运行需要的脚本。

2.安装sleepwatcher工具

在安装sleepwatcher之前,需要先安装homebrew。可能有人并不熟悉homebrew,以下是其介绍。

Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。

先在终端安装homebrew,国内用户直接用官网的命令安装不了,需要用国内的镜像源安装。终端中执行下面指令,选择其中一个镜像源即可,推荐清华大学的镜像源。

  • 安装
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
  • 卸载
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

MacBook利用sleepwatcher实现开盖自动联网
安装完homebrew就可以安装sleepwater工具了。

  • 安装sleepwater
brew install sleepwatcher
  • 设置sleepwater服务自启动
brew services start sleepwatcher
  • 查看进程服务是否已启动
ps aux | grep sleepwatcher

一开始应该有两个服务,一个是sleep,还有一个wakeup。

3.编写唤醒服务脚本

  • 在home目录~下创建.wakeup文件。⚠️注意,文件的名字就叫做.wakeup,这是默认执行的文件,不要设置成其他文件名。因为是.文件(隐藏文件),所以是看不到的,但是不影响。创建完成后,修改权限。
touch ~/.wakeupchmod 777 ~/.wakeup
  • 编写需要启动的服务和要运行的脚本,先用vim打开.wakeup
vim .wakeup
  • 编写脚本,保存即可生效,剩下的什么都不要做了,下次开盖时,会自动启动这些服务
!/bin/bashnetworksetup -setairportpower en0 on  # 打开Wi-Fi,off是关闭networksetup -setairportnetwork en0 NJUPT-CMCC  # 连接到指定的Wi-Fisleep 3 # 等待5秒python3 /Users/wenanqin/Desktop/编程学 习/net_link/link.py  #执行python脚本,后面跟的是要执行.py文件的路径,需要换成你自己的路径

系统有自带的打开wifi和连接wifi的指令,可以直接用。流程就是这样:

  • 开盖
  • 打开wifi(已开则忽略)
  • 连接wifi(不管之前连的什么网络,都会连接到设置的wifi)
  • 执行自动登录校园网的link.py程序

⚠️特别提醒,如果有梯子,合盖前先关了,不然代理会出现问题,这也是我踩的一个坑。比如我的要把这个设置为系统代理取消掉。
MacBook利用sleepwatcher实现开盖自动联网