安全停用 Mac 登入與背景項目
Mac 的自動啟動項目不只包括登入後跳出的應用程式,還有背景項目、launchd 任務、系統延伸功能和配套服務。關閉它們可能縮短登入時間,也可能讓同步、更新、快捷鍵、VPN、備份或安全功能失效。動手前先查清所屬應用程式和用途。
登入項目:最直觀的一份列表
打開 系統設定 > 一般 > 登入項目與延伸功能。Apple 的登入項目使用說明介紹了這裡的兩個主要區域。
「登入時打開」列出登入後自動打開的應用程式、文件、資料夾或伺服器。選取項目並點一下減號,只會取消自動打開,不會解除安裝應用程式。
允許在背景:不一定有視窗的輔助程式
「允許在背景」依開發者顯示更新程式、同步輔助程式、選單列工具和配套服務。關閉開關後,相關應用程式不能再以這種方式執行背景任務。
如果行程已經啟動,先結束應用程式或登出一次,再測試選單列狀態、同步、自動更新和硬體功能。
只想診斷登入變慢時,可以在登入過程中按住 Shift,直到 Dock 出現。macOS 會在這次工作階段中暫時阻止自動登入項目。如果問題消失,再回到設定中一次關閉一個候選項目。
為什麼應用程式結束後還會重新出現
應用程式可能由 launchd、Service Management 登入項目、應用程式延伸功能、其他行程或自己的設定重新啟動。舊式 launchd 檔案常見於:
~/Library/LaunchAgents/Library/LaunchAgents/Library/LaunchDaemons
這三個目錄並不是完整清單。下面的指令可以唯讀查看目前使用者網域:
launchctl print gui/$(id -u)
服務標籤不一定與檔名或應用程式名稱相同,單靠行程名稱猜 plist 容易找錯對象。應用程式設定、macOS 背景開關或原廠解除安裝工具掌握的歸屬資訊更多。
怎樣安全關閉自動啟動項目
一次關閉一項,必要時登出後再測試。同步、備份、輸入裝置、VPN、安全防護或更新停止運作時,把它重新打開。
Apple 服務和 /Library/LaunchDaemons 不在一般啟動項目整理的範圍內,原廠守護程式也涉及服務狀態與特權元件,交給解除安裝工具依序處理更合適。
launchd 的運作方式,以及應用程式為什麼無法保持結束
launchd 管理許多背景任務。macOS 13 以後,Apple 建議應用程式透過 SMAppService 註冊登入項目、代理和守護程式,延伸功能則有自己的生命週期。
launchd plist 可以使用 RunAtLoad、KeepAlive、socket、路徑和計時器等條件。KeepAlive 只是重新啟動的一種原因。~/Library/LaunchAgents 中的代理依使用者執行,/Library/LaunchDaemons 中的守護程式可以在使用者登入前執行,通常使用 root 身分,也可以指定其他使用者。
從 macOS Ventura 開始,背景任務管理讓使用者能看到並控制許多第三方項目,但不是每個服務都能變成簡單開關。相關資料庫屬於受保護的系統狀態,不應直接編輯。
統一清單有什麼用
Mole 會彙總系統登入項目和 launchd 項目,並只切換能夠精確對應到已驗證任務的內容。身分無法確認的項目會轉到系統設定處理,不會直接寫入受保護資料庫或猜測服務標籤。
一次安全的啟動項目檢查
登入或閒置時的實際影響、項目所屬廠商和功能,可以一起說明它是否值得關閉。透過應用程式設定或「登入項目與延伸功能」一次調整一項,結果也更容易複測,列表更短不一定更好,備份、安全、同步和裝置輔助程式的開銷往往有必要。