OpenClaw 定時任務與無人值守執行:雲端 Mac mini 上的 LaunchAgent 實戰(2026)
互動演示很簡單——生產自動化意味著週二 03:15 OpenClaw 要醒來,而你的筆記本蓋著。在租用的 Mac mini 上,這類工作交給 launchd,通常是用與 OpenClaw 狀態同一 macOS 使用者執行的 LaunchAgent plist。這份 2026 指南對比 cron 與 LaunchAgent,揭示會破壞 HTTPS 代理的環境一致性陷阱,並給出與 安裝與部署、生產工作流、故障排查與恢復 一致的日誌與恢復步驟。安全基線仍在 OpenClaw 安全與金鑰。
TL;DR
- 面向使用者級 OpenClaw 任務使用
~/Library/LaunchAgents下的 LaunchAgents;除非你完全理解許可權對映,否則避免 root cron。 - 把
HTTPS_PROXY、NO_PROXY及 API 相關環境變數映象進 plist 的EnvironmentVariables字典——不要只寫在~/.zshrc。 - 將 stdout/stderr 寫到輪轉檔案;對非零退出碼告警。
- 編輯 plist 後:
launchctl bootout gui/$(id -u)再bootstrap,避免重複守護程序。
LaunchAgent 與 cron(決策表)
| 選項 | 最適合 | 風險 |
|---|---|---|
| LaunchAgent | 帶鑰匙串金鑰的每使用者 OpenClaw CLI | plist 鍵拼寫錯誤會靜默失敗 |
| LaunchDaemon | 多使用者共享的系統級工具 | TCC 更棘手;非必需勿用 |
| cron | 呼叫以正確使用者執行的包裝指令碼 | 無 GUI 會話——鑰匙串提示可能卡住 |
推薦的 Plist 模式
引數保持最小:ProgramArguments 指向 OpenClaw 二進位制或 shell 包裝器,並顯式傳入配置路徑。時鐘計劃用 StartCalendarInterval,週期輪詢用 StartInterval。若廠商 API 會突發限流,配合 ThrottleInterval。
環境一致性清單
- 把互動式
printenv輸出複製到臨時檔案。 - 用臨時任務跑
env > /tmp/openclaw-agent.env,與 LaunchAgent 實際環境做 diff。 - 若依賴
/opt/homebrew/bin,對齊PATH。 - 確認
OPENCLAW_STATE_DIR指向本地 SSD——不要放在雲同步的桌面資料夾。
日誌與輪轉
使用 StandardOutPath 與 StandardErrorPath,指向使用者擁有的目錄,例如 ~/Library/Logs/OpenClaw/。每週或檔案約超過 100MB 時輪轉。受監管團隊可把 ERROR 行轉發到 SIEM,但剝離模型提示。在向廠商開單前,先把異常與 部署恢復 交叉驗證。
故障矩陣
| 現象 | 可能原因 | 處理 |
|---|---|---|
| 任務從不啟動 | plist XML 無效或 label 錯誤 | plutil -lint + launchctl print gui/$(id -u) |
| LLM API 返回 401 | 無頭模式缺少鑰匙串解鎖 | 按 VNC 指南 用一次 VNC 會話預授權金鑰 |
| 重複執行 | 兩個 plist label 重疊 | 刪除陳舊 plist,bootout 後只 bootstrap 一次 |
五步恢復手冊
- 抓取 stdout/stderr 最後 200 行。
- 按 代理 / WireGuard 文章驗證網路出口。
- 對比互動 shell 與 plist 的環境差異。
- 透過
launchctl kickstart -k gui/$(id -u)/label.here重啟任務。 - 在 幫助 工單中記錄根因與時間戳以便支援。
常見問題
還應該用 cron 嗎?
僅當最小包裝能提升到正確使用者上下文時。對貼近 GUI 的許可權,LaunchAgent 仍是 macOS 原生預設。
為什麼 HTTPS_PROXY 消失了?
LaunchAgent 不會 source shell 配置——請在 plist 或磁碟上的共享配置檔案中重複變數。
日誌應放在哪裡?
使用 plist 的 stdout/stderr 路徑放在家目錄下,積極輪轉,絕不記錄金鑰。
為何用 ProxyMac Mac mini 跑常開 OpenClaw
筆記本會睡;機房不會。專用 HK / JP / KR / SG / US mini 在穩定供電與散熱下保持 LaunchAgent 存活,你仍可透過 SSH 與 VNC 人工接入。批處理視窗重疊時從 定價頁 擴容。