概述
macOS 应用通过 launchd 管理 Gateway,不将 Gateway 作为子进程直接启动。应用首先尝试连接已运行的 Gateway;若不可达,则通过外部 openclaw CLI 启用 launchd 服务。
子进程模式(应用直接生成 Gateway)当前未使用。如需更紧密的 UI 耦合,在终端手动运行 Gateway。
默认行为(launchd)
- 安装 per-user LaunchAgent,标签
ai.openclaw.gateway(使用--profile时为ai.openclaw.<profile>) - 本地模式启用时,应用确保 LaunchAgent 已加载并按需启动 Gateway
- 日志写入 launchd gateway 日志路径(可在 Debug Settings 中查看)
# 重启 Gateway
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
# 停止 Gateway
launchctl bootout gui/$UID/ai.openclaw.gateway未签名开发构建
scripts/restart-mac.sh --no-sign 用于无签名密钥的快速本地构建:
- 写入
~/.openclaw/disable-launchagent防止 launchd 指向未签名的 relay 二进制
签名运行 scripts/restart-mac.sh 时,若存在该标记则自动清除。手动重置:
rm ~/.openclaw/disable-launchagentAttach-only 模式
强制 macOS 应用永不安装或管理 launchd:
# 启动时传入参数
OpenClaw.app --attach-only
# 或
OpenClaw.app --no-launchd此模式设置 ~/.openclaw/disable-launchagent,应用仅连接已运行的 Gateway。也可在 Debug Settings 中切换。
远程模式
远程模式不启动本地 Gateway,应用通过 SSH 隧道连接远程主机。
为什么选择 launchd
- 登录时自动启动
- 内置重启/KeepAlive 语义
- 可预测的日志和监督
相关链接
- platform-macos — macOS 伴侣应用
- platform-mac-bundled-gateway — Gateway 管理详情