MacOS 開機自動運行(Boot Automatically)
本文于 932 天之前發表,文章内容可能已經過時。
MacOS 開機自動運行(Boot Automatically)
前言
Mac 的開機啟動項目一般會在 「系統偏好設定」 >「使用者與群組」>「登入項目」可以找得到。
但是有時候也有例外。
因工作需要,有時需要掛上 VPN (Pulse Secure),但這 APP 實在讓我有點困擾,一重啟電腦,他就自動運行….
完全不管我是否有需要…
MacOS是有分成登入項目(Login Items) 與 啟動項目(Startup Items)兩種。
Startup Items
早期版本的 OS X 依賴於兩個資料夾
- /Library/StartupItems
- /System/Library/StartupItems
來保存指定在啟動 Mac 時加載的項目。Apple 現在不鼓勵使用啟動項,但有些程式(主要是較舊的應用程式)仍然使用這種機制。通常你的 /System/Library/StartupItems
資料夾應為空; 但如果它包含您不再使用的內容,則可以將不需要的項目拖到垃圾桶中,以防止下次啟動 Mac 時自動加載。
Launch daemons and agents
自從 OS X 10.4 Tiger 以來,Apple 已經為開發人員提供了另一種自動啟動項目的機制:啟動守護進程和代理,由 launchd 進程控制。此方法比登錄項或啟動項提供更大的靈活性,但對用戶而言不太透明。
UNIX 窗簾背後:launchd 不是直接打開應用程式,而是加載特殊格式的 .plist 文檔(XML首選項文件),指定應該啟動什麼以及在什麼情況下啟動。有時這些啟動項目在後台持續運行,有時它們按預定的時間間隔運行,有時它們會根據需要運行
- 例如,響應某個文件或資料夾中的更改等事件
- 然後退出。
launchd 使用的 .plist 文件可以佔用五個資料夾中的任何一個,它們的位置決定了項目加載的時間和權限:
- /Library/LaunchDaemons 和 /System/Library/LaunchDaemons中的項目在 Mac 啟動時加載,並以 root 用戶身份運行。
- /Library/LaunchAgents 和 /System/Library/LaunchAgents 中的項在任何用戶登錄時加載,並以該用戶身份運行。
- /Users/your-username/Library/LaunchAgents 中的項僅在特定用戶登錄時加載,並以該用戶身份運行。
其中位於 System 資料夾中的 /System/Library/LaunchDaemons
和 /System/Library/LaunchAgents
是作為 OS X 的一部分包含的組件,他們對於保持 MAC 的正常運行非常重要,千萬不要動它們!!!
對於其它資料夾中的項目,你可以依照需求隨意修改他們。例如禁用它們或更改它們運行的頻率。但在此之前,最好要瞭解它的作用方式。
關閉 Pulse Secure 自動啟動
使用終端機(Terminal)
1 | ➜ ~ cd /Library/LaunchAgents |
找到 net.pulsesecure.pulsetray.plist
1 | ➜ LaunchAgents sudo vim net.pulsesecure.pulsetray.plist |
修改其中的 Disabled 改為 ture 即可,重開機後就不會再出現哩!
1 | <!--Disabled 原本應該為 false--> |
開機自動運行
下指令sudo vim /Library/LaunchDaemons/com.go.agent.plist
修改其中的片段,指定為自己的腳本或者程序
1 | <?xml version="1.0" encoding="UTF-8"?> |
下指令launchctl load /Library/LaunchDaemons/com.go.agent.plist