AI 自動化 2026年4月29日

2026 OpenClaw Gateway の launchd クラッシュループ:スロットル、KeepAlive、MacLogin Apple Silicon 向けウォッチドッグ復旧

MacLogin AI 自動化チーム 2026年4月29日 約20分

OpenClaw Gateway がプラグイン読み込みやモデル交渉で落ちると、launchd は忠実に再起動する—時には LLM ベンダーが再び HTTP 200 を返すより速く。 2026年4月の MacLogin ホスト Apple Silicon(香港・東京・ソウル・シンガポール・米国)への答えは、再起動間隔を制御面として扱い、明示的スロットルを入れ、SuccessfulExit の意味を文書化し、単一 curl ではなく重ねたプローブで復旧を証明することだ。 本稿はクラッシュ信号を金額に写像し、ノブ表を配り、plist 構造を解剖し、9 段階ロールアウトを列挙し、再起動嵐と API 割当を数値シナリオで見積もり、可観測性信号を列挙し、既存カットオーバー記事へポインタを渡し、FAQ で締め、常時エージェントに Mac mini M4 の密度が効く理由で締める。

横読み:本番カットオーバーのヘルスチェックlaunchd kickstart リロードlocalhost バインド強化。購入判断は 料金、運用ドキュメントは ヘルプ、画面経路は VNC

クラッシュ信号、爆発半径、単純再起動が害する理由

2026年4月のインシデントチャネルで支配的な三症状:(1) メンテタスク後にコード 0 で終了—plist が任意終了を失敗扱いするため launchd は再起動する。(2) インポート時の未捕捉プラグイン例外で CPU が数十秒 100% に張り付き、ウォッチドッグキルがハード障害に見える。(3) リモートモデルが HTTP 429 を返す一方で launchd が即再起動し、スロットルを API の財布 denial に増幅する。

警告: KeepAlive を丸ごと無効にして「騒音停止」はゲートウェイ死亡と静かな監視を残す—ラボのみ env=sandbox タグのホストで行え。

launchd ノブ表(意図・トレードオフ・初期値)

キー意図トレードオフ初期値
ThrottleInterval再起動嵐を上限実クラッシュ後の復旧が遅い本番 30 秒 / ラボ 10
KeepAlive/Crashed異常終了で再起動根バグを隠す可能性true、リトライ上限付き
SuccessfulExitゼロ終了を健全とみなす正直な終了コードが必要ゲートウェイが意味論を守るまで false
ProcessType対話かバックグラウンドかスケジューリング優先度に影響ヘッドレスは Background
SoftResourceLimitsファイル記述子上限スキルが飢餓する可能性重いウォッチャーで 4096 まで引き上げ
数値ガードレール: 単一ゲートウェイテナントは RAM 最低 8 GB、cron・webhook・対話セッション共有なら 16 GB。Node 22 とモデルキャッシュが小さいスライスを早く食う。

plist の形:ProgramArguments、WorkingDirectory、EnvironmentVariables

多くの失敗は「OpenClaw 故障」ではなくパスドリフト:plist が /usr/local/bin を指す一方、Apple Silicon の Homebrew は /opt/homebrew/bin へ移った。node とゲートウェイエントリのフルパスを書く。LaunchAgent は空の home を継ぐので HOME を明示。WorkingDirectory は ~/.openclaw があるワークスペースに合わせ、HK と US クローンで相対スキルパスが一貫するようにする。

9 段階ロールアウト(SSH 優先・ヘッドレス安全)

  1. ベースライン取得: launchctl print gui/$(id -u)/com.openclaw.gateway(ラベルは置換)と openclaw doctor の JSON をアーカイブ。
  2. 設定凍結: 20 分間 npm アップグレード禁止、第二ターミナルからの plist 編集禁止。
  3. ThrottleInterval 先行適用: 一度 reload し、log show --predicate 'eventMessage CONTAINS "com.openclaw"' --last 15m で再起動間隔が設定秒以上に広がったか確認。
  4. SuccessfulExit 切替: 実障で非ゼロを返すことを検証してから。東京本番を汚さずシンガポールのステージングで試す。
  5. ヘルス curl 五連: 各再起動後 127.0.0.1:18789200 ms 間隔で五回。モデル許可リスト修正 の記述と揃える。
  6. 単一 PID 検証: リスナーを 120 秒所有する PID が一つか。二つなら重複 LaunchAgent を疑う。
  7. メトリクス: 再起動カウンタ、最終終了コード、上流レイテンシヒストグラムを TSDB へ—60 秒ごとの JSON スクレイプでも盲目ページよりマシ。
  8. ロールバック文書化: git に plist とチケット参照、復元用に旧 plist のチェックサムを添付。
  9. 連絡: チャット運用へ、安定化ウィンドウ中は webhook が レート制限バックオフ に従うよう伝える。

再起動嵐と上流 API 予算(数値シナリオ)

コールドスタート毎に LLM を叩き、1 回 $0.004 と仮定。スロットルなしで分 6 回再起動ならホスト当たり約 $0.864/時—ソウルの契約者 22 台まで掛け算すると無視できない。ThrottleInterval を 30 秒に上げるとコールドスタートは時間当たり最大 120 に抑え、レート制限挙動を除いてもホスト当たり約 $0.52/時節約の目安になる。

パターン10 分あたり再起動LLM HTTP 混成推定診断
白ナックルフラップ> 40401/403 スパイクplist 未 reload の資格ローテ
サンダリングハード1824429 優勢ThrottleInterval 過小+共有 API キー
クリーンバウンス12200 安定計画メンテか設定 reload
ゾンビリスナ再起動 0 だがクライアント停滞n/a古いソケット、重複エージェント

「緑がフラップ」ゲートウェイを捕まえる可観測性

  • UNIX エポック差:ゲートウェイ ready から初回成功モデル呼び出しまで > 8 秒ならプラグイン停滞の疑い。
  • ファイル記述子数:再起動を跨いで上昇ならクラッシュループに見せかけた記述子漏れ。
  • launchd スロットルメッセージ:統合ログに出れば制御面が働いている。欠落なら plist にキーが載っていない。

ヘルスは通るのに webhook が死ぬなら TLS 信頼、重複排除ストア、ゲートウェイ HTTP は独立した表面。webhook 重複排除JSONL ログローテーション を同じメンテ窓で揃え、plist 調整とフォレンジックデータを両立させる。

よくある質問

MacLogin が plist をパッチしますか? いいえ。LaunchAgent は顧客所有。Mac とネットワーク経路は ヘルプ に記載。

ゲートウェイを root で動かすべきか? 避ける。最小権限の LaunchAgent がスキル暴走時の爆発半径を縮める。

どこで安全に試すか? 東京本番を触る前に 料金 から隔離 mini を立てる。

ウォッチドッグ調整後も常時 OpenClaw に Mac mini M4 が合う理由

M4 の効率は、Node・ffmpeg ヘルパー・Xcode インデックスが衝突したときに旧 Intel mini が電源レールを食い潰した様子を再現しにくい。統合メモリによりモデルキャッシュとログバッファが共存し PCIe SSD スラッシュを起こしにくく、30 秒スロットル窓はディスクではなくネットワーク遅延が支配する。都市ごとにレンタルすれば US カナリアに攻撃的スロットルを載せ、APAC 本番は保守的なまま、72 時間メトリクスが平坦化してから差分だけクローンできる。

ゲートウェイがラボから収益クリティカルへ進むとき、1 枚の熱エンベロープにエージェント七つを積むより MacLogin リージョンで容量を足す。24/7 自動化に Mac Pro タワーを共同設置へ引きずるよりワット当たり経済性は Apple Silicon がまだ勝つ。

専用 Apple Silicon で OpenClaw に安全に失敗余地を与える

HK・JP・KR・SG・US で SSH 優先ワークフローと文書化されたロールバックをデプロイする。