最近,晚上关闭MacBook后,第二天打开电脑黑屏,充电后才会重新开机,发现电池已经 耗尽电量。
MacBook 睡眠模式下,wifi和蓝牙都会继续工作, 有的时候多个设备的信息共享会莫名奇 妙的自动唤醒 mac, 然后导致耗电。
检查 系统设置
->电池
内选项,使用电池电脑休眠时,启用电能小憩,是否选上。
网络唤醒选择仅使用电源适配器的选项。
sleepwatcher
sleepwatcher: https://www.bernhard-baehr.de/ 是一个监控睡眠的守护进程工具,当
Mac 在唤醒和睡眠的的时候,可以执行配置的 sleep
和 wakeup
脚本程序,它还可以
监控上次睡眠前的活动信息。
使用 brew 安装
# 安装
brew install sleepwatcher
# 设置启动
brew services start sleepwatcher
检查文件可以看到 /usr/local/Cellar/sleepwatcher/2.2.1/
文件夹中
homebrew.mxcl.sleepwatcher.plist
和 homebrew.sleepwatcher.service
里的配置
参数,
查看这两个文件可以看到,默认的配置脚本参数是 HOME_PATH/.sleep
和
HOME_PATH/.wakeup
, 可以创建 .config/sleepwatcher/sleep|wakeup
, 然后修改配
置文件 -s
和 -w
参数,然后 brew services restart sleepwatcher
对蓝牙进行控制
安装蓝牙控制 blueutil
brew install blueutil
在 vb2ex 中有人提供了脚本
睡眠触发任务 file: on-sleep.sh
#!/usr/bin/env bash
export BLUEUTIL_ALLOW_ROOT=1
echo `date` Disable WLAN...
networksetup -setairportpower en0 off
echo `date` Disable Bluetooth...
/usr/local/bin/blueutil -p off
唤醒触发任务 file: on-wakeup.sh
#!/usr/bin/env bash
export BLUEUTIL_ALLOW_ROOT=1
echo `date` Enable Bluetooth...
/usr/local/bin/blueutil -p on
echo `date` Enable WLAN...
networksetup -setairportpower en0 on