Messages致macOS卡顿:soagent与callservicesd进程CPU占用异常
我之前帮好几个用户解决过这个头疼的问题——明明只用到一个iCloud账户,还是触发了soagent和callservicesd占满CPU的bug,导致Messages彻底没法用。试试下面这些步骤,按顺序来,大概率能解决:
第一步:重置Messages的缓存与偏好设置
- 先彻底退出Messages(右键Dock图标选「退出」,或者用
Cmd+Q),同时打开「活动监视器」,找到soagent和callservicesd进程,强制退出它们 - 打开访达,按
Cmd+Shift+G调出「前往文件夹」窗口,输入~/Library/Containers/com.apple.iChat/Data/Library/Preferences,找到com.apple.iChat.plist文件,把它移到桌面做备份(别直接删除,留个后路) - 再用同样的方式打开
~/Library/Containers/com.apple.Messages,把整个文件夹也移到桌面备份 - 重启Mac,然后重新打开Messages,登录你的iCloud账户,看看CPU占用是否恢复正常
第二步:重置iCloud Messages同步状态
有时候同步状态紊乱也会导致后台进程疯跑,试试重置同步:
- 打开「系统设置」→ 点击你的头像→「iCloud」→「显示全部」→找到「Messages」,先关闭同步(弹窗提示时选「保留在我的Mac上」,别删本地消息)
- 等个5分钟左右,再重新开启Messages同步,让系统重新拉取云端数据
- 期间盯着活动监视器,看看那两个进程的占用有没有降下来
第三步:重置CallKit相关框架(针对callservicesd异常)
callservicesd和通话框架关联很深,重置它的配置可能有效:
- 先退出所有通讯类应用(Messages、FaceTime、微信之类的都关掉)
- 打开终端,依次输入以下命令并回车执行:
killall -9 callservicesd killall -9 soagent defaults delete com.apple.CallKit - 执行完后重启Mac,再打开Messages测试
第四步:磁盘急救与系统缓存清理(兜底方案)
如果前面的步骤都没效果,试试修复磁盘权限和清理系统级缓存:
- 打开「磁盘工具」,选择你的系统磁盘(一般叫「Macintosh HD」),点击「急救」,等待修复完成
- 然后打开终端,输入以下命令(需要输入你的开机密码,输入时不会显示字符,正常输入就行):
sudo rm -rf /Library/Caches/com.apple.messages* sudo rm -rf ~/Library/Caches/com.apple.messages* sudo killall -HUP SystemUIServer - 重启Mac后再测试Messages
如果以上所有步骤都无效,建议创建一个新的用户账户(系统设置→「用户与群组」→「添加账户」),在新账户里登录iCloud并打开Messages,看看是否还会出现CPU占满的情况。如果新账户正常,说明是原用户账户的配置出了问题,可以考虑把原用户的数据迁移到新账户里。
内容的提问来源于stack exchange,提问作者orome




