killall Dock 的作用,以及何时使用它简短回答:它会强制退出 Dock,macOS 会立即启动一个全新的副本。
不会删除任何内容,也不会重置任何东西。你的 App、窗口和文件都不会受到影响。
killall Dock
把它粘贴到终端里并按下回车键。Dock 会消失大约一秒钟然后重新出现。不会有确认提示,也不会有输出,这是正常现象:killall 成功执行时不会打印任何内容。
killall 是一个 Unix 命令,它会找到每一个具有指定名称的正在运行的进程,并要求它停止。Dock(首字母大写)就是这个进程的名称,因为 macOS 是把 Dock 当作一个普通的后台应用程序来运行的,而不是系统本身的一部分。
Dock 由 launchd 负责照看,它被指示要让 Dock 保持存活。所以你一杀掉它,launchd 就会立即把它重新启动。这就是全部窍门所在。macOS 里没有“重启 Dock”这样的命令,所以你只能杀掉它,让系统把它放回去。
新的 Dock 启动时会重新读取它的设置,这正是这条命令几乎出现在每一篇 Dock 教程结尾的原因。用 defaults write 更改设置只会更改存储的值。正在运行的 Dock 在重启之前不会察觉到这一点。
会的,而且这是应用 Dock 改动的正常方式。它不会删除任何内容,不会触及任何文件,也不会关闭任何 App。全屏 App 和你的“调度中心”空间都会保持原样。
唯一可见的副作用很小:正在弹跳或显示徽标的 App 会在 Dock 消失的那一秒暂停,如果你的 Dock 设置为自动隐藏,它重新出现时也会保持隐藏状态。
defaults write com.apple.dock 命令之后。没有它,你的改动只会停留在偏好设置文件里,不起任何作用。这正是很多人栽跟头的地方。killall Dock 不会重置 Dock。它只是用 Dock 原有的设置重新启动它。如果你的 Dock 大小不对,或存放的 App 不对,重启它完全不会改变任何东西。
重置是另一条不同的命令,而且和这条不同,它确实会丢弃你的工作内容:
defaults delete com.apple.dock; killall Dock
那会删除整个 Dock 偏好设置文件,然后重启 Dock,让它以出厂设置重新出现。你固定过的每一个 App 都会消失,连同你的大小、位置和隐藏设置一起,且都无法恢复。末尾的 killall 只是为了让删除操作生效。运行它之前请先阅读如何重置 Mac Dock。
如果你想避免使用终端,“活动监视器”也能完成同样的工作。打开它,搜索 Dock,选中它,点按工具栏中的停止按钮,选择“退出”。launchd 会以完全相同的状态重新启动它。
退出登录再重新登录也会重启 Dock,连同其他一切一起,这也是为什么这是达到同样效果的慢办法。
经常运行 Dock 相关命令?我们的Dock 锁定命令生成器会替你生成命令,并在末尾加上 killall Dock,让你永远不会忘记这一步。
要反复输入这些命令?参见在 Mac 上锁定 Dock 的三种方法对比。
不会。它只会停止 Dock 进程,macOS 会立即启动一个新的。设置、已固定的 App 和文件都不受影响。真正会删除内容的命令是 defaults delete com.apple.dock。
因为 killall 是按进程名称精确匹配的,而这个进程叫做 Dock。输入 killall dock 会返回“未找到属于你的匹配进程”,什么都不会发生。
不会。Dock 是一个独立于它所显示内容的进程。你的 App 会继续运行,窗口也会留在原处。
不会。Dock 是以你的身份运行的,所以你不需要提升权限就能退出它。如果有指南让你用 sudo killall Dock,那是在对付另一个用户的 Dock,并不是你想要的效果。
很少见,通常只是响应慢了一点。如果它真的消失了,运行 open -a Dock,或者退出登录再重新登录。重启总能把它找回来,因为 launchd 会把它作为你登录会话的一部分启动。
大多数人运行 killall Dock 是因为某项 Dock 设置总是被撤销。Still Dock 锁定你 Mac 的 Dock:大小、位置、内容和隐藏设置全都能保持不变,并且无需终端即可应用改动。
使用不止一块屏幕?Dock 也会在它们之间跳动,这是另一个问题,有它自己的解决办法:如何将 Mac Dock 固定在单块屏幕上。
如果 Dock 不只是行为异常,而是完全消失了,请改看我 Mac 的 Dock 不见了。