sudo killall coreaudiod:它做了什么,什么时候该用
如果你搜索过 Mac 的声音问题,一定见过这条建议:打开终端,运行 sudo killall coreaudiod。它在论坛帖子里已经流传了十多年,用过的人反馈说管用。
在往一条命令里输入密码之前,想先弄清楚它是做什么的,这再合理不过。下面就讲讲它做了什么、什么时候有用,以及什么时候不该用它。
coreaudiod 是什么
coreaudiod 是负责 Mac 上所有声音的后台服务。每一个播放或录制音频的应用都要经过它。它随时掌握着有哪些扬声器、耳机和麦克风,并把来自不同应用的声音混合在一起。
这个名字是 Core Audio daemon 的缩写。daemon(守护进程)是一种在后台运行、没有窗口的程序。
这条命令做了什么
这条命令由三部分组成。
sudo以管理员权限运行后面的内容。这就是它要求输入密码的原因。killall停止指定名称的所有运行中进程。coreaudiod是要停止的进程的名称。
所以,这条命令的作用就是停止声音服务。只要有任何程序请求音频,macOS 就会立刻启动一个全新的服务进程,通常在几秒之内。不会卸载任何东西,也不会抹掉任何设置。它相当于音频版的“关掉再打开”。
如何运行
- 打开终端(位于“应用程序”>“实用工具”,或者用“聚焦”搜索)。
- 输入或粘贴下面这行,然后按下 Return 键:
sudo killall coreaudiod
- 输入你的 Mac 密码,然后按下 Return 键。输入时屏幕上不会显示任何字符。这是正常的。
声音会短暂中断,然后恢复。之前正在播放的应用可能需要你再按一次播放,有些则需要退出后重新打开。
可能遇到的问题
“No matching processes belonging to you were found.”(未找到属于你的匹配进程。)你漏掉了 sudo。这项服务属于系统,而不属于你的账户,所以这条命令需要管理员权限。
“Sorry, try again.”(抱歉,请重试。)密码不对。请使用你自己的登录密码,而且你的账户必须是这台 Mac 上的管理员。
声音没有恢复。等十秒钟,然后查看系统设置 > 声效 > 输出(较早的 macOS 版本中叫“声音”),重新选择你的扬声器。服务重启之后,macOS 有时会选中另一个输出。如果还是没有声音,重启 Mac。
什么时候有用
当声音服务本身处于异常状态时,重启它就能解决问题:
- 随着时间推移越来越严重的杂音、爆音或卡顿
- 输出选对了、也没有任何地方被静音,但所有应用都没有声音
- 设备已经连接,却没有出现在输出列表里
- Mac 从睡眠中唤醒后,声音没有恢复
- 音量键能让滑块移动,响度却不变
什么时候没用
问题不出在这项服务上,它就解决不了。
- 选错了输出。声音被送到了显示器上,或者送到了另一个房间里的耳机上。参见 Mac 没有声音。
- 输出设备自行控制音量。通过 HDMI 连接的显示器不理会 Mac 的音量键,这是有意的设计。参见 Mac 音量调不了。
- 应用缺少权限。麦克风只在某一个应用里没有声音,通常是隐私设置的问题。参见 Mac 麦克风没声音。
- 扬声器已损坏。如何判断,参见 MacBook 扬声器有杂音。
而且效果只是暂时的。如果你每天都得用这条命令,说明有什么东西在不断让服务陷入异常状态,最可疑的通常是第三方音频驱动,或者会添加虚拟设备的应用。
它安全吗?
安全,但有一点要注意。由于所有音频会中断片刻,通话可能会没有声音,要重新加入才能恢复,正在进行的录音也会被打断。请先把这些事做完。
这条命令不会删除文件,也不会抹掉声音设置,不过之后 macOS 可能会选中另一个输出或麦克风。macOS 会自行重新启动这项服务。你不需要手动再把它启动起来。
不用终端的做法
还有另外两种方式可以重启这项服务。
活动监视器。打开它,选取显示 > 所有进程,搜索 coreaudiod,选中它,然后点按窗口顶部的“停止”按钮。选取强制退出,如果系统要求,输入管理员的名称和密码。
Soundshine Doctor。Soundshine Doctor 是我们的免费 Mac 应用,它正是为重启声音服务而做的。当确实需要重启时,它的 Quick Fix(快速修复)按钮会执行同样的重启,但和手动运行命令相比有三点不同。
- 它会先检查。如果 Mac 被静音了,或者选中的输出已经断开连接,它会去解决那个问题,而不是重启一个并没有坏的东西。
- 它不会打断通话。只要有任何应用正在使用麦克风,Doctor 就拒绝重启,直到你用完为止。
- 它会把你的输出恢复原样。重启之后,它会选回你之前使用的输出,然后问你声音听起来怎么样。
它仍然会要求输入你的 Mac 密码,因为 macOS 要求有管理员权限才能重启这项服务。Doctor 需要 macOS 15 或更高版本。
免费下载 Soundshine Doctor。无需注册账户,Doctor 也绝不会录制音频。
常见问题
sudo killall coreaudiod 是做什么的?
它会停止 coreaudiod,也就是负责 Mac 上所有声音的后台服务。macOS 会在几秒内自行重新启动这项服务,大多数卡住的音频状态就此清除。它是对声音系统的一次重启,并不会更改你的设置。
sudo killall coreaudiod 安全吗?
安全。它不会删除文件,也不会抹掉你的声音设置,不过之后 macOS 可能会选中另一个输出或麦克风。副作用是所有音频会短暂中断,所以通话可能会没有声音,要重新加入才能恢复,正在进行的录音也会被打断。请先把这些事做完。
为什么 killall coreaudiod 提示 No matching processes belonging to you were found?
因为你运行时没有加 sudo。这项服务属于系统,而不属于你的用户账户,所以这条命令需要管理员权限。请运行 sudo killall coreaudiod 并输入你的 Mac 密码。
有没有不用终端就能重启 Core Audio 的办法?
有。你可以在活动监视器里强制退出 coreaudiod,也可以使用免费应用 Soundshine Doctor,它用一个按钮就能重启声音服务,而且只要有应用正在使用麦克风,就拒绝这样做。