痛みポイント:restart が嘘に見える理由
痛み1:設定は新しいのに監督バイナリが古い。初回起動で schema が書き換わり meta.lastTouchedVersion が進みます。古い CLI は同じ JSON を読んでもサービス変更を拒否します。
痛み2:PATH の二重人格。Homebrew と npm -g と手動シンボリックリンクが同居すると、ターミナルの which openclaw と launchd plist の PATH が食い違います。
痛み3:重複ユニット。gateway status --deep は過去の実験で残った gateway 風サービスを列挙します。放置すると doctor と install が衝突します。
痛み4:pairing の赤鯡。バージョンと PATH を揃える前に pairing を繰り返すと、本人確認だけを追いかけます。
痛み5:remote URL との混同。gateway.remote.url が退役ホストを指すと症状は似ますが根因は輸送層です。which -a で先に二分してください。
レイヤー:古いバイナリ拒否と真の破損
L0:openclaw --version と gateway status の要約を同じチケットに貼る。
L1:meta.lastTouchedVersion と CLI のメジャーラインを比較し、スタンプが新しいなら古いバイナリからのサービス変更を止める。
L2:openclaw gateway status --deep でシステムレベルユニットや余分な launchd ラベルを記録する。
L3:PATH を揃えた後に openclaw doctor。doctor --fix は 4.14 の安全文脈を読んでから。
L4:RPC が緑のときだけ channels status --probe。沈黙は チャネル記事 と Telegram 初期化 へ。
チケットに載せる最小セット
二つのバージョン文字列、Config(cli) と Config(service) のパス、meta.lastTouchedVersion、which -a openclaw、unit 名、deep の抜粋を固定化します。アップグレード窓では毎時追記すると PATH 漂移か重複ユニットかが判別しやすいです。
リモート Mac で成果物転送とゲートウェイを同居させる場合は CPU とディスク I/O のスナップショットも添付し、RPC 失敗とリソース飢餓を混同しないでください。二段階 CI 記事 のリソース節と相互に参照できます。
意思決定マトリクス
| 署名 | 意味 | 初動 | 避ける |
|---|---|---|---|
| サービス変更拒否 | lastTouchedVersion が CLI より新しい | PATH を新 dist に→install --force | 古いバイナリで --fix |
| deep が重複列挙 | 古い plist/systemd | 公式ヒントで余分を無効化 | 二つの launchd を並存 |
| Config パスのみ不一致 | HOME 漂移 | EnvironmentFile と shell を揃える | JSON だけ手編集 |
| RPC 失敗かつ URL 異常 | remote 誤接続 | remote 記事へ | split-brain 中に pairing リセット |
七手順:単一の真実へ収束
gateway statusと--deepをマスク付きで凍結する。which -a openclawとシンボリックリンク先を列挙する。- シェルと監督プロセスの
PATHを同一プレフィックスに揃え、必要なら plist に絶対パスを書く。 - バージョンが一致してからサービス変更を試す。
openclaw gateway install --forceの後にコールド再起動する。- doctor でブロッカーをゼロにし、要約をチケットへ貼る。
- RPC レイテンシと成功した UI 操作を次回アップグレードの基線にする。
採集例
which -a openclaw
openclaw --version
openclaw gateway status --deep
openclaw doctor深掘り:観測、責務、ドリル
(1)2026 年の運用では、meta.lastTouchedVersion と Config 二重表示が同一インシデントに混ざりやすいです。まず変数を固定し、which -a の出力と plist の PATH を並べて貼り、バイナリ拒否か HOME 漂移かを切り分けてください。ノート PC のスリープで SSH が切れた場合はチャネル沈黙を split-brain と誤認しないでください。
(2)四半期ごとに PATH 先頭へ古いラッパーを一時挿入するドリルを行い、監視が誤解決を検知できるか確認します。duplicate plist をステージング Mac に入れ、deep が両方を列挙するか、正典ラベルを Runbook に明記するかを検証します。
(3)install --force が失敗した場合のロールバック tarball と復旧所要時間を文書化します。split-brain は心理負荷が高いため、リハーサル済みロールバックが平均復旧時間を短縮します。
(4)夜間ジョブで非対話シェルから解決した openclaw パスと plist 埋め込みパスを突き合わせ、分岐だけでアラートを上げます。RPC が緑でも部分故障が続くパターンを可視化できます。
(5)本文の手順は同ホストのバイナリずれに効きますが、プロバイダ障害やモデル 429 は対象外です。筆記体の運用コストが支配的なら、常時稼働のリモート Mac をマネージド入口として借りる選択が総所有コストを下げることがあります。トークン方針と Runbook は自社に残し、ハードウェアと観測デフォルトを前倒しするイメージです。
関連読み
remote:remote マトリクス。pairing:runbook。install:常駐。
ノートの睡眠と多重インストールが変数を増やし続けるなら、単一監督者とファイル同梱を両立するリモート Mac レンタルが次の現実的な一手になります。
FAQ
再インストールだけで直る?
PATH と重複ユニットを掃除しない限り、再インストールは古い入口に再バインドされます。
Docker と bare metal の併用は?
監督パターンは一つに絞り、deep が単一路を示すまで整理します。
SFTPMAC を選ぶ理由
単一のバイナリ真実、安定した入口、成果物ワークフローとの同居観測を前倒ししつつ、トークンと Runbook は顧客側に残せます。
