Linux 常扮演 OpenClaw 的控制面、閘道或出站代理,而真正跑建置的 Mac 可能在 MacCloud 上。以下假設你使用具 systemd 的發行版(如 Ubuntu LTS、Debian 或雲端映像),目標是「權限清楚、可重啟、可排錯」。

一、為什麼要獨立使用者與目錄

不要用 root 跑業務行程。為 OpenClaw 建立專用系統使用者與工作目錄(例如 /var/lib/openclaw),設定與金鑰放在該使用者下並將敏感檔案權限收緊到 600。備份、遷移或交接時,邊界一目了然。

二、systemd 單元怎麼寫才穩

使用 Type=simple 或上游文件建議型別,明確設定 WorkingDirectoryEnvironmentFile。啟用 Restart=on-failure 並配上合理的 RestartSec,避免異常抖動時把機器打滿。需要多執行個體時,用範本單元或獨立服務名稱區分,別共用同一個 PID 檔路徑。

一句話:能在 journalctl -u 裡看清啟停原因,比「腳本裡 echo」更利於與工單系統對齊。

三、網路與防火牆

預設拒絕入站、依需求放行。若 Linux 僅作為出站用戶端,可維持無入站連接埠。與 MacCloud 上的 Mac 通訊時,優先走固定出口 IP 或內網,方便你在雲端做白名單;需要開洞的情境務必在變更紀錄寫清連接埠與有效期。

四、日誌與輪替

把標準輸出交給 journald,或落到 logrotate 管理的檔案;欄位盡量帶 run_idstep 這類鍵,與 Mac 側建置日誌對照時不用猜。磁碟寫滿會拖垮整個編排——別忽略日誌上限策略。

五、與 Mac 建置機協作時的習慣

Linux 側重編排與回呼,Mac 側重 Xcode/圖形相關工作。把長耗時步驟放在租期與計費你更可控的一側;若 Mac 執行個體按天/週計費,避免在到期邊界發起不可中斷的長任務。

六、自檢清單

  • 服務是否以非 root 使用者執行,目錄權限是否最小化?
  • systemctl status 是否能在失敗時看到最後數十行日誌
  • 防火牆與雲端安全群組是否雙向核對(而不只改了一邊)?
  • 日誌成長是否在監控裡有閾值告警

若還需在桌面側偵錯,可繼續看WSL2 指南;要上 CI,請讀GitHub Actions 整合思路