MacOS 上的 launchctl Daemon / Agent 管理

2018-03-11 MacOS

最近接獲報案在 MacOS 上的 Apache 被啟動關不掉,依稀記得 MacOS 上有內建 apache,從 ps ax 看起來是使用者誤開內建的 apache

 

先講解決辦法,用 launchctl unload 來把 apache 停用,並且不會在開機的時候啟動

 

談談 launchctl 這個東西

如果你稍微了解系統,應該會知道 init(sysvinit)、systemctl(systemd) 這兩個管理服務工具,而 MacOS 的管理工具就是 launchctl 來管理整個作業系統的 services 及 processes,而 Launch 分為兩種:

  • Launch Daemon:在開機時載入 (load) 。
  • Launch Agent:在使用者登入時載入。
  • XPC Service
  • Login Items:在使用者登入時載入,這個在於「偏好設定」->「使用者與群組」->「登入項目」這邊可以找到設定。

 

太詳細的東西在 Reference 可以點進去看,這邊只講淺的(太嫩)

 

大部分的設定檔會放在以下位置的 plist

  • /System/Library/LaunchDaemons
  • /Library/LaunchDaemons
  • /System/Library/LaunchAgents
  • /Library/LaunchAgents

 

利用 launchctl list 可以看到會被自動帶起來的 service / processes

 

 

 

 

Reference:

Mac OS X 的 Launch Daemon / Agent

Daemons and Services Programming Guide

Technical Note TN2083: Daemons and Agents

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱

%d 位部落客按了讚: