OpenClaw 的 macOS 閘道理應透過 launchd 在重新開機後存活,但 2026.x 快速通道更新偶爾會留下靜默失敗:二進位已升級、LaunchAgent 卻從未重新載入,所有訊息橋接都不再回應。本手冊將症狀對應到修復方式、以矩陣比較復原策略,並列出九個可在 NodeMac Mac mini M4 上透過 SSH 重現的步驟,無需猜路徑。
請搭配 OpenClaw 維運手冊 取得日誌位置與升級政策,若需從頭重建則參考 首次 macOS 安裝指南。
您面對的是 LaunchAgent 漂移—不是「AI 掛了」
- 程序缺席但無崩潰對話框:
ps看不到閘道工作者且 CPU 閒置—典型為未載入的代理程式。 - 重新開機後所有供應商回傳 HTTP 401:金鑰仍在 dotenv 檔案中,但守護程序因 plist 未內嵌必要變數而繼承到空環境。
- 手動 CLI 可啟動、自動啟動失敗:維運在終端機成功啟動閘道;登出後服務停止,因 LaunchAgent 仍指向舊版工作目錄或舊版面配置的進入檔名。
復原選項矩陣
| 策略 | 停機時間 | 適用時機 |
|---|---|---|
launchctl kickstart -k |
5–15 秒 | 代理已載入但程序卡住;最快的起手式 |
| 卸載 + 載入 plist | 20–40 秒 | 已修改 ProgramArguments 或 WorkingDirectory 之後 |
openclaw gateway install --force |
1–3 分鐘 | 廠商 CLI 可改寫 plist;重新開機前請比對 diff |
| 套件回滾 + plist 備份 | 5–10 分鐘 | 迴歸阻擋正式環境;從最後已知良好 tarball 還原 |
環境變數:守護程序必須從哪裡讀取
互動式 shell 會讀 .zshrc;LaunchAgent 不會。若供應商金鑰只存在於 plist 忽略的檔案中,閘道會以未驗證狀態啟動並在日誌中打出令人困惑的 401 風暴。
- 列出必要鍵(API 權杖、選用 Proxy URL)於維運可貼上的手冊片段,供輪替後使用。
- 將其鏡像到 plist 的
EnvironmentVariables或 依廠商支援的封裝程式在啟動時明確載入 dotenv—每台機器選一種策略,不要兩邊各做一半。 - 重新開機測試:排程每季執行;在憑證輪替後 24 小時 內抓出遺漏的環境變數。
- 限制 plist 權限 僅服務使用者可讀;全世界可讀的 plist 會把機密洩給任何本機帳號。
- 記錄作用中網域(
gui/$(id -u)與 background 之差)以免初階值班卸錯工作。
無頭雲端 Mac 提示:若需短暫觀看閘道 UI,請依 VNC 說明 使用 VNC;否則請留在 SSH,依日誌與 HTTP 健康檢查判斷。
為何二進位正常時自動啟動仍會壞
套件更新可能同時改動三個脆弱點:ProgramArguments 內的可執行路徑、相對設定檔解析所依賴的工作目錄,以及閘道套件預期的 Node.js 版本。任一漂移時 launchd 仍認為工作「已設定」卻立即結束—維運在從未真正常駐的 UI 上看到綠勾。
將每次升級視為小型遷移:快照 plist、記錄閘道進入稿的校驗和,並至少保留 七天 的前一版 tarball。雲端 Mac 無論機器人是否回訊息都在付費;把此紀律納入變更日曆,第一次週五傍晚部署把客戶端自動化晾在一邊時就會回本。
- 節流正式閘道上的自動升級;讓預備環境的金絲雀先吃最新版。
- 對齊 Node 主版本 與廠商文件—主版本不符常在日誌首行以模組解析錯誤現身。
- 集中憑證輪替,使 plist 修改一次覆蓋整個機隊,而非每次恐慌各改一次。
九步驟復原手冊(Mac mini M4 上 SSH)
- 確認連線 使用與 LaunchAgent 相同的 SSH 使用者;權限不符常解釋「手動可以、開機不行」。
- 擷取
launchctl print gui/$(id -u)輸出並與事件紀錄一併保存以利 diff。 - 在
~/Library/LaunchAgents/定位 plist;確認ProgramArguments路徑在磁碟上存在。 - 執行帶
-k的 kickstart 強制重生;等待 30 秒 並檢查監聽埠。 - 若仍離線,乾淨地卸載/載入 plist;若曾實驗過,請檢查
/Library/LaunchDaemons是否有重複標籤的殘件。 - 對齊環境變數;補齊缺漏鍵後再次重新載入。
- tail 閘道日誌 兩分鐘 留意崩潰迴圈—若同一堆疊追蹤重複超過三次,退回回滾。
- 執行整合冒煙測試(透過風險最低的通道送測試訊息)再宣告恢復。
- 更新內部文件 記錄實際有效的指令;港、日、韓、新、美的雲端 Mac 機隊應共用同一復原頁。
在怪模型供應商前先核對的清單
| 檢查項 | 通過條件 |
|---|---|
| DNS/對外 HTTPS | 對供應商端點的 curl -I 回 2xx/401(非逾時) |
| 磁碟空間 | 系統卷至少 25 GB 可用 |
| 時鐘偏移 | NTP 漂移低於 2 分鐘—時鐘跳動時 JWT 驗證會靜默失敗 |
常見問題
為何更新後 OpenClaw 會從選單列消失?
閘道程序可能已結束但 launchd 從未重新載入 LaunchAgent plist,或套件目錄變更後 plist 仍指向舊程式路徑。請驗證 plist、重新載入代理程式,並確認環境變數在重新開機後仍存在。
在正式環境閘道上執行 kickstart 安全嗎?
若能接受數秒停機則可;依賴訊息橋接的團隊請優先在維護時段操作。重新啟動後第一分鐘務必 tail 日誌。
需要常駐閘道又不必盯著筆電?請比較 NodeMac 定價,選擇與使用者區域相符、具 SSH/VNC 的專用 Mac mini M4 節點,並將本手冊列為標準更新後檢查清單。
Mac mini M4 硬體讓守護程序復原「無聊地可靠」:Apple Silicon 效能餘裕使閘道、本機輔助程式與輕量自動化可並存而不頻繁換頁,統一記憶體亦降低日誌尖峰時的 OOM 崩潰。NodeMac 提供 專用實體機器(非共享 VM),於香港、日本、韓國、新加坡與美國提供 SSH 與 VNC,讓維運在更新釋出當下即可遠端執行本手冊。租用可避免資本支出,同時反覆調整 LaunchAgent 政策,並可搭配 平台說明文件 維持整個機隊的存取衛生。