macOS 上 Gateway 的生命週期
預設情況下,macOS 應用程式 透過 launchd 管理 Gateway,且不會將 Gateway 作為子行程 (child process) 啟動。它首先嘗試連接配置通訊埠上已在運行的 Gateway;若無法連接,則透過外部openclaw CLI(無嵌入式運行時)啟用 launchd 服務。這提供了可靠的登入時自動啟動與崩潰重啟功能。
子行程模式 (由應用程式直接啟動 Gateway) 目前 已不使用。
若您需要與 UI 更緊密的耦合,請在終端機中手動運行 Gateway。
預設行為 (launchd)
- 應用程式安裝標籤為
bot.molt.gateway的使用者層級 LaunchAgent (若使用--profile/OPENCLAW_PROFILE則為bot.molt.<profile>;支援舊版com.openclaw.*)。 - 當 Local 模式啟用時,應用程式確保 LaunchAgent 已載入,並在需要時啟動 Gateway。
- 日誌寫入至 launchd gateway日誌路徑(可於 Debug Settings 查看)。
bot.molt.<profile>。
未簽署的開發建置
scripts/restart-mac.sh --no-sign 適用於當您沒有簽章金鑰時的快速本地建置。為防止 launchd 指向未簽署的中繼二進位檔 (relay binary),它會:
- 寫入
~/.openclaw/disable-launchagent。
scripts/restart-mac.sh 運行會在標記存在時清除此覆蓋。手動重置:
Attach-only 模式
若要強制 macOS 應用程式 永不安裝或管理 launchd,請使用--attach-only (或 --no-launchd) 啟動它。這會設定 ~/.openclaw/disable-launchagent,因此應用程式僅會連接至已在運行的 Gateway。您也可以在 Debug Settings 中切換相同的行為。
Remote 模式
Remote 模式從不啟動本地 Gateway。應用程式使用 SSH 通道連接至遠端主機,並透過該通道進行通訊。為何我們偏好 launchd
- 登入時自動啟動。
- 內建重啟/KeepAlive 語意。
- 可預測的日誌與監督。