痛點拆解:為何「我明明執行了 restart」卻像沒執行
痛點 1:二進位與設定寫入版本錯位。新版本首次啟動會把設定依新 schema 重寫並更新 meta.lastTouchedVersion;舊 CLI 仍可能讀到同一路徑檔案,但程序突變操作會被守護邏輯拒絕,表現為命令離開碼非零或靜默 no-op。
痛點 2:PATH 分岔。brew、npm -g、手動 /usr/local/bin 連結並存時,終端機的 which openclaw 與 launchd plist 的 PATH 往往不同;你在終端機裡「升級成功」,服務單元仍指向舊 dist。
痛點 3:重複安裝單元。gateway status --deep 會提示系統層與使用者層或歷史 plist 殘留;未清理時 doctor 與 install 會互相打架。
痛點 4:與 pairing 混淆。pairing required 與 split-brain 都可能讓 UI 斷連;先確認版本與 PATH再跑配對,見 pairing 文。
痛點 5:與 remote URL 混淆。若 gateway.remote.url 仍指向舊主機,症狀像 split-brain 但根因是連錯網關;請先讀 remote gateway 文 做二分。
現象分層:舊二進位拒絕 vs 真設定損毀 vs 遠端誤連
L0:同時列印 openclaw --version 與 openclaw gateway --version(若文件提供子命令)並截取 gateway status 中的 Runtime / Capability / Config 摘要。
L1:檢視 meta.lastTouchedVersion 與 CLI 回報版本是否同主版本線;若設定被更高版本寫過,低版本二進位應停止嘗試改服務,先升級 PATH。
L2:執行 openclaw gateway status --deep,記錄 Other gateway-like services 與 system-level unit 提示;對照官方「Fix PATH → install --force → restart」順序。
L3:openclaw doctor 與 openclaw doctor --fix(在版本已對齊前提下)清除阻塞項;涉及安全策略見 4.14 文。
L4:僅在 RPC 綠後進入 channels status --probe;否則轉 通道無回覆 與 Telegram 靜默初始化。
可引用欄位:工單裡應貼上的最小證據包
建議固定採集:兩條版本字串、Config(cli) 路徑 vs Config(service) 路徑、meta.lastTouchedVersion、which -a openclaw、launchd Label / systemd unit 名稱、deep 掃描摘要行。升級視窗內每小時追加,便於確認是 PATH 漂移還是重複單元。
若在遠端 Mac 上並行跑檔案交付與網關,請同時附上磁碟與 CPU 負載摘要,避免把 I/O 飢餓誤判為 RPC 故障;與 今日 CI 兩段式交付 的資源爭用段落可互證。
決策矩陣:先修 PATH 還是先 doctor
| 簽名 | 解釋 | 首選動作 | 避免 |
|---|---|---|---|
| 舊二進位拒絕服務變更 | lastTouchedVersion 新於 CLI | 修正 PATH 指向新 dist;再 install --force | 在低版本上強行 --fix 破壞 schema |
| deep 報重複網關單元 | 歷史 plist/schtasks | 依官方提示停用多餘單元;再 install | 並行保留兩套 launchd |
| 僅 Config 路徑不同 | 環境變數 HOME 漂移 | 對齊 plist EnvironmentFile 與 shell profile | 手改 JSON 卻未 reload 服務 |
| RPC 失敗且 remote.url 異常 | 遠端誤連 | 轉 remote 文;校驗 URL 與權杖 | 在 split-brain 上疊加配對重置 |
How-to:七步把同機雙安裝收斂到單一真源
- 凍結證據:保存
gateway status與--deep全文(脫敏)。 - 列所有 openclaw 路徑:
which -a openclaw、ls -l解析符號連結終點。 - 對齊 PATH:讓互動 shell 與 launchd/systemd 使用同一
PATH前綴指向新 dist;必要時在 plist 寫絕對路徑。 - 驗證版本一致:CLI 與 gateway 子命令版本同線後再嘗試服務變更。
- 重裝服務中繼資料:
openclaw gateway install --force後gateway restart,參見 install 常駐文。 - doctor 閉環:
doctor/doctor --fix清阻塞;保留輸出摘要。 - 迴歸探針:記錄 RPC 耗時與一次 UI 成功操作,作為下次升級基線。
示例命令骨架(占位符依環境替換)
which -a openclaw
openclaw --version
openclaw gateway status --deep
openclaw doctor維運加深:變更視窗、責任分界與觀測訊號
(1)在 2026 年的 OpenClaw 維運現場,meta.lastTouchedVersion 與 Config (cli)/Config (service) 路徑摘要常被混寫在同一張工單上:請先凍結變數,把 which -a openclaw 的終點與 plist 內嵌 PATH 並列貼齊,再判斷是「新版本寫過設定、舊二進位拒絕」還是單純的 HOME 漂移。若筆電合蓋導致 SSH 工作階段中斷,請不要把「通道無回覆」誤判為 split-brain;兩者症狀可能重疊,但證據包不同。
(2)變更視窗內建議指派一人負責 PATH、一人負責監督程序單元(launchd/systemd),並把每次 brew 或 npm 全域升級後的 gateway install --force 寫進檢核表;沒有責任人時,每次升級都會變成尋寶遊戲。長期把網關放在常時上線的遠端 Mac 通常能顯著減少變數:統一守護、穩定入口與和檔案交付同機的維運模型,較適合 7×24 Agent,但你仍須保留權杖策略與 Runbook 自主權。
(3)觀測面可把「解析到的 openclaw 絕對路徑」與「監督程序 plist 內 PATH」做夜間比對;兩者分歧即告警,即使 RPC 仍顯示綠燈。許多團隊只對程序死亡分頁,而 split-brain 常以部分失敗呈現:支援困惑、二進位卻未崩潰。把 gateway status --deep 升級後首幾行做雜湊去重後送日誌倉儲,便於跨版本 diff,而不必逐一開筆電。
(4)結語:本文方案能對齊官方 split-brain 敘事並補上可執行矩陣,但無法取代發行說明與安全稽核閱讀;在筆電睡眠、多套件管理器與 plist 漂移仍主導隱性成本時,租賃型遠端 Mac 把常駐與觀測預設值產品化,你保留權杖與 Runbook,通常是更穩的落點。
強相關閱讀與 CTA
大版本迴歸與 JSONL 體積見 4.5 文;升級頻率與通道見 4.x doctor;生產最小權限見 workspaceAccess。
當你已依官方順序仍被筆電睡眠、多份安裝與 PATH反覆折磨,把網關遷到長期上線遠端 Mac通常能顯著減少變數:統一守護、穩定入口與和檔案交付同機的維運模型,更適合 7×24 Agent。
FAQ 與租賃結論
能否只靠解除安裝重裝解決?
可以,但必須同步清理 PATH 與重複單元,否則重裝仍指向舊入口。
docker 與裸機混裝要注意什麼?
確保只有一個監督者;deep 輸出出現多條時依官方順序停用多餘單元。
正文價值與局限
本文補齊同機 split-brain與 remote 誤連 的邊界;不能替代官方發行說明與安全稽核閱讀。
何時選 SFTPMAC 租賃遠端 Mac
需要單一真源、724 上線、與產物目錄同機觀測且不想再為 PATH/plist 漂移買單時,託管節點把基線產品化,你保留權杖與 Runbook。
