Script management with launchd in Terminal on Mac
在 macOS 上使用 launchd 來管理服務與進程. 使用者不會直接與 launchd 做互動, 是透過 launchctl 指令來載入或取消載入 launchd 服務程式和代理程式.
例如:
1# 查看資源限制
2$ launchctl limit
3
4# 列出服務清單
5$ launchctl list
6
7# 列出服務說明
8$ launchctl print system/com.apple.timed
plists (property list)
plist 檔案是用來定義服務的屬性檔案, 可分系統服務與第三方服務, 而 plist 檔案會放置在下面路徑.
檔案夾 | 使用情況 |
---|---|
/System/Library/LaunchDaemons | Apple 提供的系統服務程式 |
/System/Library/LaunchAgents | Apple 提供的代理程式,適用於以使用者為基礎的所有使用者 |
/Library/LaunchDaemons | 第三方系統服務程式 |
/Library/LaunchAgents | 第三方代理程式,適用於以使用者為基礎的所有使用者 |
~/Library/LaunchAgents | 第三方代理程式,僅適用於已登入的使用者 |
如下指令,查看 dock 服務的 plist 檔案內容. 可以看到是 DTD (Document Type Definition) 格式.
1# 查看 plist
2cat /System/Library/LaunchAgents/com.apple.Dock.plist
3...
4 <key>Program</key>
5 <string>/System/Library/CoreServices/Dock.app/Contents/MacOS/Dock</string>
6...