macos sleep wake 睡眠自动唤醒

post on 2019-05-27 Mon 11:32

因为有外接鼠标和键盘,时不时的自动点亮,才发现macos总是会自动唤醒,看了下系统日志,约摸在每个小时会启动一次,这真的很讨厌。
没有接eGPU之前,我都不想折腾它了,大概看了一下解决方式,关闭"电能小憩",不过这并没有什么卵用,该唤醒的还是会唤醒。

这个结果就是你的电脑只要有网,哪怕合上盖子,电脑都会不停的跑电,这个其实是个小问题,但是干不过强迫症是不是?特别是有外接设备的情况下,你看着外设一会儿启动一会儿启动的,特别心烦。

接上eGPU之后,这个问题就很严重了,每隔1小时,eGPU盒子会点亮,显卡会启动,然后散热风扇呼呼转一下,盒子又自动的断开了,这真是让人很烦的一件事情,之前偷懒不考虑好好解决的问题,现在就必须把它解决掉!找了无数的帖子和分析,发现最大的问题就是因为网络,只要有网络,它就会受到网络的影响,时不时的自动启动一下,除非关闭wifi,拔掉网线。不过,每天合上电脑之前还要点击一下关闭wifi或者拔掉网线,在工作室来说,这真的是一件很痛苦的事情,我电脑一直放那,还得每天做这种无聊的事情,说明系统恶心!

只要有问题,大多数都有解决方案,这个自动唤醒问题也不例外。关于别人是如何定位到这个问题的,也说得比较复杂和模糊,就不在这哔哔了,直接贴上最终的解决方案。

在我的电脑 macos majove 10.14.5 亲测有效,其他系统版本未进行测试验证。

在终端(terminal)中,输入命令,回车
之后会得到一串结果,分别在两条大项中查看 tcpkeepalive 设定的值
只要你的机器有自动唤醒或者盒盖一晚掉电比较多的话,不出意外,这个值的结果是 1

> pmset -g custom

Battery Power:
 tcpkeepalive         1
AC Power:
 tcpkeepalive         1

确认了这个结果之后,再次在终端(terminal)中执行以下一条命令,将tcpkeepalive设定为0,意为"关闭"
回车,输入密码。

> sudo pmset -a tcpkeepalive 0

Warning: This option disables TCP Keep Alive mechanism when sytem is sleeping.   
This will result in some critical features  like 'Find My Mac'  
not to function properly.

极大的可能你会收到这条提示,这已经表明你的设置已经成功,它只是警告你:关闭这个选项可能导致类似"寻找我的Mac"功能会失效。如果你觉得"寻找我的mac"很重要,那么把这条命令的 0 换成 1 再执行一次就又打开了这个选项。

这个时候,可以再执行一下上一条命令,看看这个选项值是否已经修改成功。

好了,至此,睡眠自动唤醒的问题可以得到完全的解决。如果还有什么问题,可以通过邮箱与我联系。