MacBook利用sleepwatcher实现开盖自动联网
Posted 几叶知期
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacBook利用sleepwatcher实现开盖自动联网相关的知识,希望对你有一定的参考价值。
目录
在使用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)"
安装完homebrew就可以安装sleepwater工具了。
- 安装sleepwater
brew install sleepwatcher
- 设置sleepwater服务自启动
brew services start sleepwatcher
- 查看进程服务是否已启动
ps aux | grep sleepwatcher
一开始应该有两个服务,一个是sleep,还有一个wakeup。
3.编写唤醒服务脚本
- 在home目录~下创建.wakeup文件。⚠️注意,文件的名字就叫做.wakeup,这是默认执行的文件,不要设置成其他文件名。因为是.文件(隐藏文件),所以是看不到的,但是不影响。创建完成后,修改权限。
touch ~/.wakeup
chmod 777 ~/.wakeup
- 编写需要启动的服务和要运行的脚本,先用vim打开.wakeup
vim .wakeup
- 编写脚本,保存即可生效,剩下的什么都不要做了,下次开盖时,会自动启动这些服务
!/bin/bash
networksetup -setairportpower en0 on # 打开Wi-Fi,off是关闭
networksetup -setairportnetwork en0 NJUPT-CMCC # 连接到指定的Wi-Fi
sleep 3 # 等待5秒
python3 /Users/wenanqin/Desktop/编程学 习/net_link/link.py #执行python脚本,后面跟的是要执行.py文件的路径,需要换成你自己的路径
系统有自带的打开wifi和连接wifi的指令,可以直接用。流程就是这样:
- 开盖
- 打开wifi(已开则忽略)
- 连接wifi(不管之前连的什么网络,都会连接到设置的wifi)
- 执行自动登录校园网的link.py程序
⚠️特别提醒,如果有梯子,合盖前先关了,不然代理会出现问题,这也是我踩的一个坑。比如我的要把这个设置为系统代理取消掉。
以上是关于MacBook利用sleepwatcher实现开盖自动联网的主要内容,如果未能解决你的问题,请参考以下文章