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程序

⚠️特别提醒,如果有梯子,合盖前先关了,不然代理会出现问题,这也是我踩的一个坑。比如我的要把这个设置为系统代理取消掉。
在这里插入图片描述

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

几叶知期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值