首页 > 代码库 > Mac Bug之三 不能睡眠,能睡眠时又自动唤醒
Mac Bug之三 不能睡眠,能睡眠时又自动唤醒
因为有时os x系统sleep的时候会自动唤醒,隔一会再sleep,隔一会再自动唤醒,不断的切断硬件电源、再接通电源,等于一个夜里就重启100多次,mac的寿命可想而知
于是有了下面的研究、参数的测试、推荐的设置
Apple公司默认设定如下:
10分钟后关闭显示器、硬盘
1分钟后sleep
sleep 4小时后进入poweroff
sleep 3小时后进入standby
那么使用系统设置里的Energy Saver和pmset命令的区别在哪?
pmset modifies the same file that System Preferences Energy Saver modifies.
autopoweroff,man里有说明
the system will write a hibernation image and go into a lower power chipset sleep.
系统产生休眠文件,进入低耗电模式,关闭除内存外的硬件
The system will not auto power off if any external devices are connected, if the system is on battery power, or if the system is bound to a network and wake for network access is enabled.
系统不会进入power off模式,如果有任何外设在连接状态,如果在使用电池供电,如果有网络活动同时开启了网络唤醒
standby,仍然看man的说明
writing the hibernation image to disk and powering off memory for Standby
把休眠文件写入硬盘,并且关闭内存
standby only works if hibernation is turned on to hibernatemode 3 or 25
为3或25才能standby
情形1
在电源模式下,选中第一项,取消第二三四项的情况下
a 点击Sleep,会自动唤醒
b 合盒子,有时不会自动唤醒,用测试程序发现10分钟和4小时10分钟的两个时间点都有一次唤醒,即displaysleep和autopoweroffdelay
c 合盒子,有时不会睡眠,直至拨了电源、离开蓝牙键盘和trackpad
情形1的结论:
在电源供电 而且有蓝牙、有wifi连接的情况下,居然在sleep 4小时的时候执行了一次poweroff,与苹果公司的声明的"系统不会进入power off模式,如果有任何外设在连接状态,如果在使用电池供电,如果有网络活动同时开启了网络唤醒" 完全相悖
不会睡眠 或者自动唤醒连显示器都亮了 是许多人遇到的bug
看看网上的反馈,os x的bug很多,而且不出现问题一切很好、出现问题多数情况下是无法解决的
情形2
全局设定
sudo pmset restoredefaults
sudo pmset -a womp 0 darkwakes 0 lessbright 0 halfdim 0 autopoweroff 1 standby 1
sudo pmset -a displaysleep 1 disksleep 0 sleep 0 autopoweroffdelay 7200 standbydelay 180000
有效 1分钟后显示器关闭,短期没有再亮(时间不准,可能不是按秒计数的,最多误差1分钟而已)
sudo pmset -a displaysleep 0 disksleep 1 sleep 0 autopoweroffdelay 7200 standbydelay 180000
看不到效果 无法测试(能证实的就是在保持写入的情况下没有关闭)
sudo pmset -a displaysleep 0 disksleep 1 sleep 1 autopoweroffdelay 7200 standbydelay 180000
无效 等了3分钟还没有睡眠
sudo pmset -a displaysleep 1 disksleep 1 sleep 1 autopoweroffdelay 7200 standbydelay 180000
有效 1分钟后显示器关闭,2分钟后测试脚本停止,Sleep至少持续3分钟 未出现自动唤醒(然后被手动唤醒)
sudo pmset -a displaysleep 1 disksleep 2 sleep 1 autopoweroffdelay 7200 standbydelay 180000
有效 1分钟后显示器关闭,2分钟后测试脚本停止,Sleep至少持续3分钟 未出现自动唤醒(然后被手动唤醒)
sudo pmset -a displaysleep 1 disksleep 1 sleep 3 autopoweroffdelay 7200 standbydelay 180000
有效 1分钟后显示器关闭,4分钟后测试脚本停止,Sleep至少持续3分钟 未出现自动唤醒(然后被手动唤醒)
sudo pmset -a displaysleep 1 disksleep 1 sleep 1 autopoweroffdelay 180 standbydelay 180000
看不到poweroff效果 可能无效 因为如果笔记本电脑要进入待机模式,则其必须使用电池电量供电,且没有任何外部连接(如以太网、USB、Thunderbolt、SD 卡、显示器、蓝牙等)。
sudo pmset -a displaysleep 1 disksleep 1 sleep 0 autopoweroffdelay 180 standbydelay 180000
无效
sudo pmset -a displaysleep 1 disksleep 1 sleep 0 autopoweroffdelay 120 standbydelay 180000
sudo pmset sleepnow
sleep有效,poweroff看不到效果
sudo pmset -a displaysleep 1 disksleep 1 sleep 0 autopoweroffdelay 120 standbydelay 180000
合盖子
sleep有效,poweroff应该是无效,测试脚本显示没有出现之前情形1的4小时一次唤醒动作(又是一bug,同样的合盖子,没有出现预期的poweroff唤醒一次)
sudo pmset -a displaysleep 1 disksleep 1 sleep 0 autopoweroffdelay 7200 standbydelay 120
sudo pmset sleepnow
sleep有效,standby应该是无效,测试脚本显示没有出现唤醒动作
情形2的结论:
displaysleep 有效
disksleep 无法测试, 官网上声明仅适用于外部连接的机械驱动器
sleep 浅睡眠模式,必须在前两者已经sleep才有效,时间从显示器sleep之后再开始计时,sleep时立即写hibernatefile
poweroff 深睡眠模式
standby 深睡眠模式
两个深睡眠模式, 笔记本电脑要进入待机模式,则其必须使用电池电量供电,且没有任何外部连接(如以太网、USB、Thunderbolt、SD 卡、显示器、蓝牙等)。但是有bug的时候连着电源、usb设备、wifi也会执行poweroff,因为mac os x的bug很多
面对bug很多无法解决的os x,勉为其难的设置:
sudo pmset restoredefaults
先关闭网络唤醒等,10分钟关闭显示器,打开深睡眠模式
sudo pmset -a womp 0 darkwakes 0 lessbright 0 halfdim 0 displaysleep 10 disksleep 10 autopoweroff 1 standby 1
无操作2小时sleep,sleep后50小时standby,sleep后51小时poweroff,电池模式下为21分钟sleep
sudo pmset -a sleep 110 autopoweroffdelay 183600 standbydelay 180000
sudo pmset -b sleep 11
Mac Bug之三 不能睡眠,能睡眠时又自动唤醒