killall Dock 的作用,以及何時該使用它簡短的答案:它會強制結束 Dock,而 macOS 會立刻啟動一個全新的副本。
不會刪除任何東西,也不會重設任何東西。你的 App、視窗與檔案都完全不受影響。
killall Dock
把它貼到終端機並按下 Return。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 大小不對,或裡面放的 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 不見了。