2026 クラウド Mac:OpenClaw doctor をデータプレーンとして扱い、launchd 修正まで一気通貫させる
「SSH では CLI が動くのに、深夜にチャットが沈む」という揺れは、ヘッドレス Mac mini リースで OpenClaw を動かすチームでは珍しくありません。本ランブックの要点は、openclaw doctor をマーケ文面ではなく一次データとして扱い、警告行を launchd plist、Node 実体、リスニングポート、ai.openclaw.gateway を所有するユーザー文脈での外向き DNS にすぐ相関させることです。 症状表、数値チェックポイント付き 8 ステップ、偽陽性の見分け方、変更管理向けフィールド、MacLogin の各リージョン運用に合わせた FAQ をまとめました。
環境変数と LaunchAgent の重ね方は OpenClaw 環境変数+launchd、デーモン復旧は ゲートウェイ障害切り分け、SSH セッション断は keepalive ガイド、状態ディレクトリは バックアップ引き継ぎ を参照してください。接続一般は ヘルプ、ステージング追加は 料金、TCC 阻害には VNC を併用します。
クラウド環境では、ローカルヘルスチェックがループバックだけを見て緑になり、外向き TLS が壊れているケースが往々にして起きます。doctor はその罠を減らしますがゼロにはできないため、チャネル所有者・SRE・セキュリティの三者で「doctor 後に必ず叩く第二確認」を Runbook に固定しておくと、夜間オンコールの迷子が減ります。
ヘッドレス環境で doctor を最優先する理由
- リース間コピー:LaunchAgent を東京からシンガポールへ複製しても doctor を再実行しないと、Node パスずれが初回再起動まで隠れる。
- トークン轮换:四半期ごとの API キー更新でも、doctor は「ファイルが読める」ことしか見ないことがある。
- 監査証跡:インシデント前の健全性を示すには、タイムスタンプ付き doctor 出力がスクリーンショットより再現性が高い。
ログを tail する前の症状表
| ユーザー視点の症状 | 最初に読む doctor 節 | 二次確認 | MacLogin で多い原因 |
|---|---|---|---|
| launchd exit 127 | Runtime / Node | which node と plist の ProgramArguments | OS アップデート後の Homebrew プレフィックス移動 |
| エッジ 502 | Ports / listeners | ループバックの lsof | localhost ポートの設定ドリフト |
| LLM タイムアウト | Network / DNS | 同一ユーザの dig | 共有リースの外向き制限 |
| ツール拒否 | Permissions / workspace | GUI で一度 TCC を確認 | 初回同意が SSH だけでは完了していない |
チケットに貼れる 8 ステップ
- シェル整合: root ではなく LaunchAgent 所有者で SSH。
OPENCLAW_STATE_DIRが iCloud 外か確認(状態ディレクトリ)。 - キャプチャ:
openclaw doctor > ~/tmp/doctor-$(date +%Y%m%d-%H%M).txt。 - 版固定:
openclaw --versionと Node semver を同ファイルへ。 - launchctl:
launchctl print gui/$(id -u)/ai.openclaw.gateway。 - ポート突合: doctor のヒントと実 TCP が ±1 を超えてズレたら設定が古い。
- チャネルプローブ: 本番前に最安チャネルで合成 ping。
- タイムボックス: 25 分で進展なければ doctor+launchctl を添えてエスカレーション。
- 事後確認: doctor 再実行で赤行ゼロかリスク承認を残す。
doctor 行と plist フィールド
| doctor ヒント | 確認する launchd フィールド | 健全パターン |
|---|---|---|
| Cannot find node | ProgramArguments[0] | 対話シェルと同じ絶対パス |
| State dir not writable | WorkingDirectory | 700 のリポジトリルート |
| Port in use | (なし)プロセス側 | 重複ゲートウェイ停止、ラボのみ +1 |
偽の緑と赤旗
ヘルスチェックがループバックのみを見ると doctor が静かでも TLS 境界で失敗します。外向き TLS 失敗は P1 扱いにしてください。
- 赤旗: doctor 緑なのに CPU>85% が 20 分続くのにトラフィックなし→暴走ツールループ疑い。
- 赤旗: 空き容量 12GB 未満警告→キャッシュ破損リスク。
監査向け最小パケット
| 成果物 | 最低限の中身 | 保持目安 |
|---|---|---|
| doctor.txt | stdout 全文、ホスト名、リージョンコード | 90 日 |
| launchctl print | 終了コード、時刻、uid | 90 日 |
| openclaw.json diff | 秘匿化済みシークレット | 180 日 |
FAQ
統合テストの代替か? いいえ。各チャネルに合成ペイロードを送るスモークは継続してください。
CI から doctor を? はい。ステージングリースのパイプラインで赤行を非ゼロ終了に。
MacLogin が代行? いいえ。客運用のまま、本稿は自己診断の指針です。
Mac mini M4 が向く理由
arm64 と launchd の前提がドキュメントと一致し、doctor をローカル推論プローブと並走してもゲートウェイが飢えにくいです。Neural Engine は将来の端末検証に余白を残します。東京やシンガポールなどユーザー近傍で doctor を回すと WAN 起因の誤判定が減ります。