⚠️ 警告 :截止于 2021.11.19 该方法可能不再适用。
出现问题的电脑的表现状态为:
- 点击休眠屏幕黑屏
- 键盘背光亮 1 分钟后熄灭(正常)
- 电源键常亮
- 风扇一直旋转(温度较高)
于是我使用了如下命令:
1
|
log show --last 1d | grep "Wake reason"
|
得到的结果如下(截取关键):
1
2
3
|
powerd: [powerd:sleepWake]
Wake reason: "<private>"
identity: "<private>"
|
该日志并无关键信息,于是便使用了如下命令:
1
|
cd ~/Desktop && pmset -g log > log.txt
|
或者可使用:
或者
得到如下结果(截取关键信息):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
Assertion status system-wide:
BackgroundTask 0
ApplePushServiceTask 0
UserIsActive 1
PreventUserIdleDisplaySleep 0
PreventSystemSleep 0
ExternalMedia 0
PreventUserIdleSystemSleep 0
NetworkClientActive 0
Listed by owning process:
BackgroundTask named: "com.apple.parsec-fbf.flush"
UserIsActive named: "com.apple.iohideventsystem.queue.tickle"
serviceID: "100000387"
name: "IOHIDEventDriver"
product: "Keyboard"
eventType: "3"
UserIsActive named: "com.apple.iohideventsystem.queue.tickle"
serviceID: "100000421"
name: "AppleUserHIDEventSe"
product: "2.4G"
Mouse eventType: "17"
Timeout will fire in 600 secs Action =
Timeout Action Release No kernel assertions.
Idle sleep preventers: IODisplayWrangler...
|
分析如上信息多少都和
1
2
|
"com.apple.iohideventsystem.queue.tickle"
"com.apple.parsec-fbf.flush"
|
有关,于是便使用搜索引擎对已上信息进行搜索,找到一个帖子:
http://bbs.pcbeta.com/viewthread-1847399-1-1.html
里面有一个 @yjplayer 提到的一点
手动睡眠,盒盖睡眠完全正常,
就是自动睡眠倒计时完了只是黑屏没睡眠。
还是要用老办法,
用命令不加载那个文件就可以自动睡眠
这个老办法引起了我的注意,于是我便开始尝试使用「parsec-fbf」
作为关键词进行搜索....
找到了这篇帖子:
http://bbs.pcbeta.com/viewthread-1836895-2-1.html
里面有一个 @maojinbing 提到的一点
如果楼主的手动睡眠(即点击睡眠菜单或按下电源按钮)是成功的,建议备份好文件,彻底停用这个文件。副作用:可能影响 siri 的正常使用...
这里提到了副作用,然后在追答后面还提到了:
你弄错了,是 parsec-fbf 其他不动
/PrivateFrameworks/CoreParsec.framework/parsec-fbf
这里有了具体位置
便猜测是:parsec-fbf 用于定期刷新 上传 Siri Search 的分析数据
这也能解释上面说的副作用
于是先尝试把这个 parsec-fbf 开机启动关闭掉,看看会不会出现这种情况
1
2
3
4
5
6
7
8
9
10
11
|
# 显示当前的启动脚本
launchctl list
# 开机时自动启动
sudo launchctl load -w [path/to/script]
# 停止正在运行
sudo launchctl unload [path/to/script]
# 去除开机启动
sudo launchctl unload -w [path/to/script]
|
于是我便执行了如下命令:
1
2
3
4
5
6
7
8
9
10
11
12
|
# 停止运行 parsec-fbf
launchctl unload /System/Library/LaunchAgents/com.apple.parsec-fbf.plist
# 去除 parsec-fbf 开机启动
launchctl unload -w /System/Library/LaunchAgents/com.apple.parsec-fbf.plist
# 检查(提示信息说明还在运行)
launchctl list |grep "parsec-fbf"
# 清除 parsec-fbf 的缓存
cd ~/Library/Caches
rm -R com.apple.parsecd
|
重启检查效果