Site icon Mr. 沙先生

MacOS 上的 launchctl Daemon / Agent 管理

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

$ ps ax | grep apache
2031 ?? S 0:00.35 /usr/sbin/httpd -D FOREGROUND

 

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

$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

 

談談 launchctl 這個東西

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

 

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

 

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

 

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

 

 

 

 

Reference:

Mac OS X 的 Launch Daemon / Agent

Daemons and Services Programming Guide

Technical Note TN2083: Daemons and Agents

Exit mobile version