最近,晚上关闭MacBook后,第二天打开电脑黑屏,充电后才会重新开机,发现电池已经 耗尽电量。

MacBook 睡眠模式下,wifi和蓝牙都会继续工作, 有的时候多个设备的信息共享会莫名奇 妙的自动唤醒 mac, 然后导致耗电。

检查 系统设置->电池内选项,使用电池电脑休眠时,启用电能小憩,是否选上。 网络唤醒选择仅使用电源适配器的选项。

sleepwatcher

sleepwatcher: https://www.bernhard-baehr.de/ 是一个监控睡眠的守护进程工具,当 Mac 在唤醒和睡眠的的时候,可以执行配置的 sleepwakeup 脚本程序,它还可以 监控上次睡眠前的活动信息。

使用 brew 安装

# 安装
brew install sleepwatcher
# 设置启动
brew services start sleepwatcher

检查文件可以看到 /usr/local/Cellar/sleepwatcher/2.2.1/ 文件夹中 homebrew.mxcl.sleepwatcher.plisthomebrew.sleepwatcher.service 里的配置 参数,

查看这两个文件可以看到,默认的配置脚本参数是 HOME_PATH/.sleepHOME_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