1. 課題整理:インストールは通るが「常駐」が壊れる
(1)デモ用シェルを本番と混同:対話シェルで openclaw gateway が動いても、再起動方針・OOM 後の自己修復・スリープ後の復帰が書かれていなければ本番ではありません。監督者が複数いると、再起動のたびに手作業に戻ります。(2)OS ごとの契約差:Linux は journald、cgroup 上限、無人アップデートの挙動が焦点です。macOS はフタ閉じスリープ、App Nap、LaunchDaemon と LaunchAgent のユーザー境界が焦点です。(3)ロールバック不在のアップグレード:OpenClaw と Node/Python のドリフトで Gateway とチャネルアダプタの版がズレると、ログは「WhatsApp が壊れた」に見えがちですが、実体はバイナリ不一致であることが多いです。
監督契約を文書化しないチームは「ゾンビ Gateway」を抱えがちです。古い前景プロセスがポートを握ったまま、systemd が別プロセスを起こし、エッジプロキシ側で TLS ハンドシェイクが不安定になったり 502 が散発します。対策は運用衛生です。所有者プロセスは常に一つ、バインドアドレスを明示し、「手動デバッグの前に必ず監督を止める」を Runbook に一行入れます。
もう一つの地雷は設定の二重ソースです。サーバ上の openclaw.json を編集している最中に、別メンバーがローカルで onboard を再実行し別パスへ同期する、というパターンです。チャネルは「最後に正しかった書き込み」が当たっている間だけ緑に見えます。シークレットを除外した Git、イミュータブルなデプロイ成果物、起動時チェックサムでドリフトを可視化します。
可観測性の負債は「感情デバッグ」として現れます。ログの順序を読まずにサービスを乱再起動し、モデル API キーまでローテーションしてしまう、といった連鎖です。固定ラダーで平均無実時間を短く保ちます。
Linux では無人セキュリティアップデートが長時間ジョブの途中でサービスを再起動することがあります。メンテ窓を切るか、ディストリが提供するトランザクショナル更新を検討します。macOS では App Store や Xcode の更新がフレームワーク順序を変えます。大きな OS 更新前にスナップショットを取り、可能ならクローン上で Gateway 起動をリハーサルします。
二重起動(手動プロセス + systemd/launchd)はポート競合と TLS 失敗の典型原因です。本番では監督者は常に一つ:デバッグ時はユニットを止めてから前景実行し、ポート解放を確認してから戻します。
2. systemd と launchd の比較
| 観点 | Linux / systemd | macOS / launchd |
|---|---|---|
| 狙い | 安価な固定出口、ヘッドレス 7×24、クラウド自動化との親和 | Apple ツールチェーン、Shortcuts、メディア、統合メモリ上のローカル LLM |
| 監督 | unit、Restart=always、バックオフ、journalctl | LaunchDaemon と LaunchAgent、システム領域とログインユーザの境界 |
| 省電力 | スリープ無し、CPU クレジットと近傍ノイズ | フタ閉じ、Wi‑Fi 省電力、必要なら WOL や常時 AC 方針 |
| ロールバック | パッケージ固定 + 設定 tarball | APFS スナップショットまたは並列インストール木 + plist 固定 |
| デバッグの起点 | systemctl status、ss -lntp | launchctl print、log show |
2b. 単一監督者ルール
本番では「systemd/launchd が Gateway を持つ」か「人間が一時的に持つ」かのどちらか一方です。同時には持たせません。前景デバッグは有効ですが、その前にユニットを止め、ポートが空いたことを確認します。この一行ルールだけでマルチチャネル構成の不確定バグは大きく減ります。
インシデントテンプレートに stop/start 順序を書きます。ユニット名、launchctl bootout のラベル、解放すべきポート、成功宣言までの待機秒数です。曖昧な秒数は、複数レスポンダーが同時に動いたときに時間を溶かします。
3. 五ステップ強化
- 真源を固定:バージョン文字列、設定パス、変更ログの一行。
- ベースライン:
openclaw status、openclaw gateway status、openclaw channels status --probe。 - 監督ユニット:Linux は EnvironmentFile と ulimits 付き systemd。Mac は WorkingDirectory と標準出力/エラー先を明示した plist。
- ガードレール:再起動レート制限。5 分間に 3 回超のクラッシュでアラート。
- ロールバックパック:更新前に設定 tarball とバイナリチェックサムを保存。
ステップ 2 は譲れません。プローブが赤い状態で launchd をいじるのはレイヤー違いです。手動でもチャネルが緑になるまで自動化に進みません。
ステップ 3 では Linux に User=/Group=、Mac では可能なら専用サービスアカウントを入れ、スキルディレクトリの権限が管理者とログインユーザの間でフラップしないようにします。
ステップ 4 はクラッシュループが上流 API のクォータを焼き、ベンダ側スロットルに見える事故を防ぎます。
ステップ 3 と 4 の間にゲームデーを入れます。意図的に Gateway プロセスを kill し、監督が人手なしで復旧しチャネルが戻るか検証します。人手入力が要るなら自動化は未完成です。メジャーアップグレードのたびに繰り返します。
doctor がクリーンでも返信が止まるときはチャネルポリシーへ上げます。メンション規則、allowlist、ペアリング保留、レート制限です。doctor は環境、プローブは製品挙動を検証します。
アプリログとカーネル時刻を相関させます。macOS では電源アサーションや Wi‑Fi ロームの直後にチャネルが静かに落ち、アプリバグに見えることがあります。Linux では dmesg の OOM が子プロセス消失を説明します。
4. レビューに載せられる数値
運用メモ用:
- 再起動バックオフ(例:開始 5 秒、上限 60 秒)でプロバイダへのサンダリングハードを避けます。
- 無人帯で週 2 回以上チャネルが全赤なら、モデルより睡眠・DNS・TLS 更新を先に疑います。
- 専任 SRE がいないチームは、複数 Linux を自前運用するより監督付きリモート Mac+固定イメージの方が TCO が低いことが多いです。
5. Linux か Mac か
| シグナル | 打ち手 |
|---|---|
| 公開 Webhook とヘッドレスだけで足りる | Linux + systemd + WAF/TLS エッジ |
| Shortcuts、ローカルファイル、ProRes、AppleScript が混ざる | リモート Mac + launchd。Linux は任意の逆プロキシに留める |
| launchd/systemd のリテラシーが薄い | 監視付きのマネージド Mac 時間を買い、DIY 艦隊を避ける |
| コンプライアンスが読み取り専用 rootfs を要求 | コンテナ経路(Docker ガイド参照)だが Gateway 監督者は一つ |
この表はプレモーテムとして使います。複数行に同時に当てはまるなら役割をホスト単位で分割し、トークン保管庫をどのマシンが持つかを明記します。
コストにはエンジニア時間を入れます。Mac 時間単価がやや高くても、クロス OS のファイル同期スクリプトを消せるならカレンダー勝ちになりがちです。
MACGPU は、資本的支出なしに Apple ネイティブ挙動と運用分離の予測可能な BOM が欲しいチーム向けです。魔法ではなく、監視とロールバック規律が前提ですが、フルタイム SRE を雇えない小規模代理店にとってその予測可能性が価値になります。
ハイブリッドにするならデータプレーンを明示します。長寿命 WebSocket をどのホストが持つか、Apple 専用ペイロードを誰が署名するか、TLS クライアント証明書をどう更新するか。曖昧さが「どちらのチームも直さない」最悪障害を生みます。
plist や unit の変更は一行でも changelog に残します。将来の自分は ThrottleInterval を変えた理由を覚えていません。数月後の回帰で git blame が効きます。
6. FAQ
本節は 2026 年初頭の運用者から集めた質問の要約です。パスやユーザー名は組織に合わせて調整してください。
Q: doctor は緑だが返信なし? チャネルをプローブし、メンション方針と allowlist を確認します。Q: 1 台の Mac にユーザーが二人? HOME を分離し、書き込み可能な設定を共有しません。Q: アップグレード後だけ Gateway だけ落ちる? 待受ポート、古い PID、パッケージが上書きした環境ファイルを比較します。
Q: Mac で Gateway を Docker に? 可能ですがクレデンシャルのボリュームマウントと IPC が複雑になります。コンテナ標準化済みでなければネイティブ監督を推奨します。Q: IPv6 のみの VPS? DNS と証明書 SAN を揃えます。AAAA の誤設定は半開トンネルの原因になりがちです。Q: ログが多すぎる? 構造化 JSON を集約基盤へ。本番シェルで生 tail しない方針にします。
Q: フェイルオーバを二台で試すには? ステージング用ホスト名で、本番トークンに触れる前にロールバックを二度演習します。Q: Git にシークレット? sops や sealed secrets を使い、プライベートでも生キーをコミットしません。フォークと CI ログが漏洩経路です。
7. 事例視点:層状診断が睡眠を救う
2026 年のインシデントタイムラインは繰り返し型です。フタ閉じまたはプロバイダメンテ → Gateway ダウン → ユーザーが何時間もモデル設定をいじる。五段階ラダーを凍結すると平均復旧時間が短縮されます。高価なミスはほぼ運用であってアルゴリズムではありません。
二重真源はゴースト成功を生みます。最後に書いたマシンが勝つまで正常に見え、負けると一気に壊れます。起動時チェックサム付きの GitOps デプロイでドリフトを即見える化します。
Apple 重視ワークフローでは Gateway をリモート Mac に寄せると、OpenClaw チュートリアルが前提とするファイルシステム挙動に揃い、サンドボックスの驚きが減ります。TLS と大規模終端が必要ならエッジに Linux を置く選択は残りますが、トポロジは単純が強いです。
長期的には Runbook に投資したチームが、数パーセント速いトークンより勝ちます。ポート一覧、ヘルスコマンド、ロールバック tarball パスが書かれた一枚紙は、障害のたびに家賃を払います。
セキュリティ:管理ポートを誤って晒したと仮定します。ループバックにバインドし、TLS は制御されたプロキシで終端し、チャネル更新と同じ cadence でクレデンシャルを回します。
容量:Gateway CPU はめったにボトルネックになりません。ネットワーク停滞とプロバイダレート制限が長尺です。チャネルプローブの p95 を週次で測り、悪化はハード障害の前兆になりがちです。スキルキャッシュのディスクも監視します。小さな VPS はダウンロードで満杯になりやすいです。
変更管理:plist と unit の編集はコードレビュー扱いです。WorkingDirectory の一行抜けが相対パスを変え、シェルでは通っていた import を壊します。reload 前に差分を取り、.bak タイムスタンプで旧版を残します。
ベンダ対応:モデル提供者にチケットを切るときは Gateway 版、プローブ出力、マスクした設定断片を添付します。ログが順序立っていれば「再現なし」で閉じにくくなります。
人的プロセス:オンコールは週次で回しても、構造変更を承認する単一の「Gateway オーナー」を置きます。分散オーナーシップに決定権がないと、衝突する再起動方針が残ります。
8. まとめ:Linux は入口、Mac は Apple ネイティブ接着剤
(1)限界:Linux は Apple 専用の接着が弱く、Mac は最安の生 egress ストーリーでは弱いです。(2)リモート Mac の価値:クリエイティブスタックとの同居とクロス OS ファイルホップの削減です。(3)MACGPU:クローゼット DC を作らず、予測可能な Apple Silicon ノードをレンタルする選択です。CTA から公開プランとヘルプへ進めます。
ハイブリッドも構いません。トークンは Linux で発行し、Apple ワークフローは Mac で実行しますが、境界は rsync かオブジェクトストレージで自動化し、不安定なトンネルへのドラッグアンドドロップに頼りません。
実験なら手動ヘルス → systemd か launchd → アラートの順です。中間を飛ばすと深夜ページが付きまといます。
予算の現実:小チームでは工数が TCO を支配します。監視と固定イメージ付きのレンタル Mac は、夜を溶かす「無料」VPS より安くなることがあります。逆にチームがすべて Linux ネイティブで Apple API に触れないなら、ブログの勢いだけで Mac を押し付けないでください。OS はワークフローに合わせます。
教育:健全なプローブ手順を五分の画面録画にし、Runbook の隣に置きます。新メンバーは本番に触る前に再生します。録画コストは障害一小时未満です。
最後に、退屈な週を祝います。最高の OpenClaw 艦隊はイベントがありません。グラフは平坦、プローブは緑、アップグレードはリハーサル済みです。興奮はデモに任せ、ページャには任せません。