macOS 上的 Gateway 网关生命周期
macOS 应用默认通过 launchd 管理 Gateway 网关,不会将 Gateway 网关作为子进程生成。它首先尝试连接到配置端口上已运行的 Gateway 网关;如果无法访问,它会通过外部openclaw CLI(无嵌入式运行时)启用 launchd
服务。这为你提供了可靠的登录时自动启动和崩溃后重启。 It first tries to attach to an already‑running
Gateway on the configured port; if none is reachable, it enables the launchd
service via the external openclaw CLI (no embedded runtime). This gives you
reliable auto‑start at login and restart on crashes.
Child‑process mode (Gateway spawned directly by the app) is not in use today.
If you need tighter coupling to the UI, run the Gateway manually in a terminal.
默认行为(launchd)
- 应用安装标记为
bot.molt.gateway的按用户 LaunchAgent (使用--profile/OPENCLAW_PROFILE时为bot.molt.<profile>;支持旧版com.openclaw.*)。 - 当启用本地模式时,应用确保 LaunchAgent 已加载,并 在需要时启动 Gateway 网关。
- 日志写入 launchd Gateway 网关日志路径(在调试设置中可见)。
bot.molt.<profile> 。` when running a named profile.
未签名的开发构建
scripts/restart-mac.sh --no-sign 用于在没有签名密钥时的快速本地构建。为了防止 launchd 指向未签名的中继二进制文件,它: To prevent launchd from pointing at an unsigned relay binary, it:
- 写入
~/.openclaw/disable-launchagent。
scripts/restart-mac.sh 会在标记存在时清除此覆盖。要手动重置: 手动重置:
仅连接模式
要强制 macOS 应用永不安装或管理 launchd,请使用--attach-only(或 --no-launchd)启动它。这会设置 ~/.openclaw/disable-launchagent,
因此应用只会连接到已运行的 Gateway 网关。你可以在调试设置中切换相同的
行为。 This sets ~/.openclaw/disable-launchagent,
so the app only attaches to an already running Gateway. You can toggle the same
behavior in Debug Settings.
远程模式
远程模式永远不会启动本地 Gateway 网关。应用使用到 远程主机的 SSH 隧道并通过该隧道连接。 The app uses an SSH tunnel to the remote host and connects over that tunnel.为什么我们更喜欢 launchd
- 登录时自动启动。
- 内置的重启/KeepAlive 语义。
- 可预测的日志和监管。