AI自動化 2026年4月17日

2026 ランブック:外部シェルと launchd で OpenClaw ゲートウェイを安全再起動(Mac mini M4)

NodeMac Team

自動化エンジニア

macOS では OpenClaw ゲートウェイが多くの場合 launchd によって監督される。オペレーター、ときにはエージェント自身が、それに依存している同じセッションから「ゲートウェイを再起動しよう」とする。そのパターンは、再起動を開始した RPC がまだ接続されたまま LaunchAgent をアンロードしうる。別シェルがログインするまで戻らないという現場報告と一致する。本稿は 理由安全/不安全の判断表7 つの具体手順と数値ガイド、復旧・並行の深掘り記事へのリンクをまとめる。

変更前に LaunchAgent ゲートウェイ復旧対話チャットと長時間ジョブの並行性 を読み、重いワークスペースと再起動が衝突しないようにする。初回導入は インストールとデプロイ に従う。アカウントは ヘルプ、ゲートウェイと CI の分離は 料金。トークンと plist のドリフトは 設定ドリフト、スケジュール整合は スケジュールタスク整合、429 とバックオフは レート制限マトリックス

失敗モード:launchd 下での自己首切り

ゲートウェイを サーバ と、実行中コマンドの 依存先 の両方として捉える。エージェントがゲートウェイが所有する同一 RPC チャネル越しに openclaw gateway restart(または同等ラッパー)を発行すると、launchd はクリーンな引き渡し前に bootout する可能性がある。再起動を開始した CLI はトランスポートエラーで終了し、bootstrap で健全へ戻る保証が残らない—特に SSH のみのヘッドレスでは。

  • 症状 A:エージェントが再起動を呼び出した直後、gateway status が実行中から欠落へ一瞬で変わる。
  • 症状 B:ログに launchd アンロード行と RPC 切断エラーが隣接する。
  • 症状 C:外部モニタ(HTTP ヘルスや TCP)が数分タイムアウトするが loginwindow ユーザーが未開始。

マトリックス:誰がゲートウェイを再起動してよいか

アクター 典型コンテキスト 判定 より安全な代替
人間(2 本目の SSH) screen または ssh user@host 推奨 文書化された bootout/bootstrap 順序とログ取得
OpenClaw 内の自動化エージェント チャット処理中のツール呼び出し 再起動は避ける チケット発行。外部オーケストレータがミューテックス後に再起動
スケジュール LaunchAgent 夜間ドリフト修復 plist が分離されていれば可 チャットピークとずらす。スケジュール整合記事を参照
同一 Mac の CI ジョブ パイプラインの「ゲートウェイバウンス」 非推奨 専用管理者ジョブキューと分離クレデンシャル

第 2 マトリックス:再起動前チェックリスト

チェック 合格基準
リスナー所有者 設定されたゲートウェイポート族に正確に 1 つの PID が一致。ロールバック用に PID を記録
ログ用ディスク空き 状態とログのボリュームに少なくとも 8 GB の空き。再起動中の書き込み失敗を防ぐ
長時間ジョブとのミューテックス ワークスペースジョブがゲートウェイ保守用に定義したコンパイルミューテックス層を保持していない
認証トークン連続性 クライアントが対話 GUI なしでディスクからトークンを再読み込みできる

毎回ログに残す運用数値

  1. コールドスタート予算:bootstrap 後、失敗宣言まで最大 90 秒。AV またはフルディスクアクセス保留時はさらに長く。
  2. RPC プローブ間隔:最初の 1 分は 5 秒ごと、その後は指数バックオフ。
  3. 同時管理者操作:ホストあたりゲートウェイを変える操作は 1 つに制限。並列 plist 編集はどの変更が健康を壊したか追えなくなる。

ヘッドレスのヒント:GUI 権限ダイアログが疑われる場合は一時的に VNC で接続し一度クリックしてから SSH のみに戻す。

ホスト上 7 ステップ(HowTo の展開)

  1. 病んだゲートウェイ経由のコマンドを止める。同一 Mac mini M4 に 2 本目の SSH を開く。このセッションはリサイクルしようとする RPC に依存してはならない。
  2. 証拠取得:状態、直近ログ、権威あると思われる plist パス—設定ドリフト記事と突き合わせる。
  3. lsof 等でリスナー確認。ラボ共有機で誤った PID を bootout しない。
  4. macOS バージョンに合う launchd 意味論でアンロードし、ディスクから bootstrap して EnvironmentVariables と WorkingDirectory を適用。
  5. 外部シェルからヘルスをプローブし RPC が成功するまで。そこで初めてチャットクライアントを再接続。
  6. インシデント一行メモ:タイムスタンプ、理由、チャット/CI 影響—後でレート制限記事と相関しやすい。
  7. まだ赤なら LaunchAgent 復旧へ戻り既知良好 plist に切り替え、エージェントセッション内で再起動ループを繰り返さない。

FAQ

Ansible で再起動を自動化できるか

可能。ただしプレイブックの制御接続が、再起動対象のゲートウェイプロセスを経由してはならない。ゲートウェイを DB のように扱い、オーケストレーション面からバウンスする。

開発と本番でゲートウェイを分ける場合

plist、ポート、状態ディレクトリを分離する。どの LaunchAgent ラベルがどの環境か文書化し、bootout が誤ラベルを撃たないようにする。

ホストを完全分割すべきとき

チャット SLO と CI のプリエンプションがミューテックス層の後も衝突する場合—単一 launchd グラフに積むより NodeMac で 2 台目の専用 Mac mini M4 を追加する。

信頼できる OpenClaw 運用はビルドと同じハードウェア物語の恩恵を受ける:専用 Mac mini M4Apple Silicon 性能と ネイティブ macOS を与え、ヘッドレス保守の SSHUI 権限プロンプト用の任意 VNC を組み合わせ、香港・日本・韓国・シンガポール・米国 でオペレータを深夜 3 時に起こすマシンに近づける。購入ではなくレンタルは、このランブックが実験エージェントと本番チャットを同一 launchd グラフに置くべきでないと証明したときに「ゲートウェイ専用 2 台目」を経済的に可能にする。次のリスクを積む前に 地域別プラン を比較する。

OpenClaw 専用の常時 Mac mini M4

ゲートウェイ稼働と CI バーストを分離—SSH 自動化、任意 VNC、HK・JP・KR・SG・US。

NM
NodeMac Cloud Mac
約5分で起動

専用 Apple Silicon Mac をクラウドで。SSH/VNC、HK・JP・KR・SG・US ノード。

はじめる