デプロイガイド 2026-03-25

2026年 OpenClaw Gateway 7×24 切断とデーモン/launchd トラブルシュート:install-daemon、launchd と openclaw health の再現手順

ZoneMac や自前 Mac mini で OpenClaw Gateway を回しているチームが陥りやすいのは「日中は動くが深夜に沈黙」です。本稿では openclaw health で一次切り分けし、launchd の終了理由を突き止め、install-daemon と plist 調整で 7×24 を取り戻す再現フローをまとめます。症状対照表・7 ステップ・コピペ可能なパラメータ付きです。

2026年 OpenClaw Gateway 7×24 と launchd トラブルシュート

1. 誰が Gateway のフラップに悩むか

典型的には、長寿命の外向き接続と複数ツール連携を launchd に任せる無人自動化チームです。対話シェルでは nvm や PATH が効く一方、LaunchAgent は plist の EnvironmentVariables だけを継ぐため、「SSH では動くがデーモンだけ失敗」や、ThrottleInterval のバックオフで夜間だけ沈黙、といった症状が出ます。

本稿の結論は、問題を三層に分けることです。(1)ヘルスチェックの誤検知、(2)launchd の再起動ストーム、(3)アップグレード由来の古い/重複 plist。openclaw health と launchctl print で突き合わせれば、多くの間欠切断は単一ホスト上で再現でき、一つのメンテ窓で平坦化できます。

以下では番号付きの痛点、対照表、7 ステップの手順を掲載します。物理ノードでの 24/7 エージェント全体像は 2026年 OpenClaw 全球デプロイ比較ガイド:どこに構築するのが最も効率的か? も参照してください。

2. よくある根本原因(3 つ)

  1. launchd と対話シェルの環境差: 手動の openclaw gateway は nvm/fnm/カスタム PATH を拾いますが、LaunchAgent は plist のみ。断続的な command not found やローカルモデルパス欠落が起きます。
  2. クラッシュとスロットル(ThrottleInterval): 上流 429、証明書ローテ、ポート競合でゲートウェイが即終了すると、launchd が秒単位で再起動しバックオフに入り、外からは「無言の数分」に見えます。LastExitStatus がないと純粋なネット障害と誤認しがちです。
  3. readiness でないヘルスチェック: 「プロセス生存」だけを見たり間隔が短すぎると、GC や DNS キャッシュの揺らぎで誤再起動が増え、ThrottleInterval 問題を増幅します。価格巡回など定期負荷と重なると負荷が読めません。 2026年コスト避坑ガイド:なぜ単一拠点でのリモートMac配備がグローバルチームの生産性を15%低下させるのか? で述べるように、単一リージョンに処理を寄せると遅延とスパイクが重なりやすく、Gateway の観測も曖昧になります。

3. 意思決定マトリクス:症状 → 証跡 → アクション

ユーザーから見える事象と、最初に取るべきコマンドを一枚にまとめ、ログを漫然と追わないようにします。

外部から見える症状 先に集める証跡 推奨アクション
断続的 502/接続リセット openclaw health、待受ポート、ゲートウェイログの時刻 プロセス終了と上流タイムアウトを切り分け、読み取りタイムアウトやリトライバックオフを調整
無人時だけ失敗、SSH 手動起動は成功 ProgramArguments、WorkingDirectory、plist 内の環境変数 openclaw install-daemon でサポート対象テンプレートに揃える
一定間隔で数分「沈黙」 launchctl print gui/$UID → ThrottleInterval、LastExitStatus 根本原因を直したうえで ThrottleInterval を広げる/クラッシュ率を下げる
OpenClaw アップグレード直後だけ不安定 古い Label、変わったバイナリパス、重複 LaunchAgent 旧ジョブを削除し install-daemon で再配置、bootstrap をクリーンに

4. 再現可能なトラブルシュート 7 ステップ

  1. ベースライン: 正常時に openclaw health --json(対応ビルドなら)で待受 URL、バージョン、依存チェックをスナップショット化します。
  2. 再現ウィンドウ: log stream --predicate 'process == "launchd"' や、ラベルで絞った Console を、インシデント前後 ±5 分に集中して読みます。
  3. launchd の状態: launchctl print gui/$(id -u)/com.openclaw.gateway(実際の Label に置換)で LastExitStatus、実行回数、state を記録します。
  4. デーモン再インストール: メンテ窓で openclaw install-daemon のあと、旧エントリを launchctl bootout し、新 plist を launchctl bootstrap して二重起動を避けます。
  5. パラメータ: ThrottleInterval(多くの場合 ≥10s)、KeepAliveExitTimeOut(初期値の目安 20s)で、SIGTERM 後のコネクション枯渇を許容します。
  6. ヘルスプローブ: 外部オーケストレーションは openclaw health を 30〜60 秒間隔で。連続 3 回失敗でアラートにするとジッターを抑えられます。
  7. 受け入れ: 24 時間の health 曲線と launchd の実行回数を保持し、階段状に増えたらステップ 3 に戻って終了コードを比較します。

5. 引用しやすいパラメータとチェックリスト

  • ExitTimeOut 20s: SIGTERM 後のドレイン時間を確保。短すぎると launchd が SIGKILL し、非ゼロ終了が増えます。
  • ヘルスポーリング 30〜60s: FAQ の目安どおり、誤検知と検知遅延のバランス。内部メトリクスは 15s でも、再起動ポリシーまで同粒度にしなくて構いません。
  • ThrottleInterval ≥10s: 根本原因修正までの暫定で再起動ストームを抑えます。上流レート制限や証明書監視とセットで使い、バックオフだけに頼らないでください。

6. なぜ Mac mini は Gateway に向くか

ゲートウェイ負荷が嫌うのは、熱・電源由来の再起動と、仮想化層が足すスケジューリングのジッターです。Apple Silicon の Mac mini はアイドル時おおよそ 4W 前後と低く、常時デーモン向きです。macOS と Silicon が一体なので、launchd・ネットワークスタック・TLS の挙動をランブックに落としやすくなります。

マルチテナント VM に比べ物理ノードは「謎の遅延」が減り、上流 API への安定したエグレスを取りやすいです。Unix ツールと SSH が第一級なので、上記ステップを CI やオンコール手順にそのまま組み込めます。

静音・低消費電力・長期安定性を兼ね備えたハードで OpenClaw Gateway を載せたいなら、Mac mini M4 は有力な出発点です。ZoneMac のノードでデーモン配置と監視を一度に整え、本文の手順を本番に接続してください。

24/7 ノード

OpenClaw Gateway を物理 Mac mini で安定稼働

ZoneMac は、長時間 launchd ジョブと自動化オーケストレーション向けにマルチリージョンの Mac mini を提供しています。

低アイドル電力 ネイティブ macOS SSH ですぐ使える
macOS クラウドレンタル 期間限定オファー
今すぐ購入