在 macOS 中,用 launchctl list 查看当前运行的后台代理服务最可靠:用户级代理(LaunchAgent)位于 ~/Library/LaunchAgents/,运行 launchctl list;系统级守护进程(LaunchDaemon)位于 /Library/LaunchDaemons/ 等路径,需 sudo launchctl list;PID 非 - 表示活跃,结合 ps、lsof 可验证真实运行状态。
在终端中查看 macos 当前正在运行的后台代理服务,核心是区分“用户级代理(launchagent)”和“系统级守护进程(launchdaemon)”,并确认它们是否真正处于活动状态。图形界面看不到的服务,大多由 launchd 管理,而 launchctl list 是判断“是否真在运行”的最可靠依据。
查当前用户的后台代理服务(如 Dropbox、1Password、Clash GUI 等)
这些服务通常安装在 ~/Library/LaunchAgents/,以当前用户身份运行,无需管理员权限:
- 运行
launchctl list:列出所有已加载的用户级代理,PID 非-表示正在运行 - 快速筛选第三方项:
launchctl list | grep -v "0x" | grep -v "com.apple" - 想看具体配置路径?用
launchctl print gui/$(id -u)/com.example.service(把com.example.service替换为实际 Label)
查系统级后台服务(如 Docker、mDNSResponder、自定义 daemon)
这类服务多位于 /Library/LaunchDaemons/ 或 /System/Library/LaunchDaemons/,需 root 权限查看:
- 运行
sudo launchctl list(输入密码),PID 非-即表示活跃 - 搜索特定服务:
sudo launchctl list | grep -i docker或grep -i nginx - 确认服务是否启用:检查对应 plist 文件是否存在且未被禁用(
Disabled键值为true则不自动启动)
辅助验证:确认进程是否真实驻留内存
launchctl list 只反映 launchd 的注册状态,有时服务已崩溃但条目残留。可结合以下命令交叉确认:
- 查进程是否存在:
ps aux | grep -E "(bird|mds|sharingd|com\.example)" - 看端口监听情况(尤其对代理类工具):
lsof -i :7890(Clash 默认端口)、lsof -i :8080(常见 HTTP 代理) - 实时观察资源占用:
top -o cpu -s 3或htop(需brew install htop)
注意区分“运行中”和“开机自启”
一个服务出现在 launchctl list 中,只说明它当前被 launchd 加载并运行;但它是否会在下次开机时自动拉起,取决于其 plist 文件位置和内容:
- 用户级自启项 →
~/Library/LaunchAgents/(launchctl load后即生效) - 系统级自启项 →
/Library/LaunchDaemons/(需sudo launchctl bootstrap system) - 临时运行 ≠ 自启:用
launchctl start com.example.app手动触发的服务,关机后不会保留


















