2026年 レンタル Mac Mini:
OpenClaw 守護統合(ヘルスチェックと異常 Webhook)
レンタル Mac Miniで OpenClaw を常駐させ、SSH 切断後も稼働を継続し異常を外部へ通知する実践手順です。導入検証、launchd 守護、HTTP ヘルスプローブ、HTTPS Webhook、終了コード診断を一読で再現できる形に整理しました。初回接続や鍵まわりはヘルプセンター、モデル併走時の保活はOllama 保活の記事と併せてください。
1 よくある運用リスク
- セッション依存:nohup だけでは cwd や環境変数がセッションとズレ、再起動後にパス解決が失敗しがちです。
- 検知遅れ:プロセスが落ちてもチャットに飛ばないと、利用者がログインするまで気づけません。
- 再起動嵐:誤設定のまま KeepAlive すると短周期で立ち上がり直し、ログと外部 API のレートを圧迫します。
常駐方式の比較
macOS では launchd が第一選択肢です。cron は補助的なプローブ向きで、手動は検証限定と割り切ると運用が単純になります。
| 方式 | 向く場面 | 注意点 |
|---|---|---|
| launchd | ログイン後の常駐 | plist・絶対パス、ThrottleInterval |
| cron | 定期プローブ | 遅延・排他で衝突防止 |
| 手動 | 検証・デモ | 本番向きでない |
再現手順(6ステップ)
- 導入:Node 18+、
openclaw doctor合格まで修正。which openclawの絶対パスを控える。 - スモーク:SSH で一度対話起動し、待受と stderr をファイルへ。成功後に終了してから常駐化。
- launchd:
~/Library/LaunchAgentsに plist。RunAtLoad、KeepAlive(SuccessfulExitfalse)、ThrottleInterval数十秒。 - プローブ:
curl -fsSでローカル HTTP と依存を見る。失敗時は Webhook へ。 - Webhook:HTTPS に JSON を POST。下記を雛形に。
- 検証:
launchctl bootstrap gui/$UID・kickstart後、ログで終了コードと間隔を確認。
異常時 Webhook の JSON 例
フィールドは受信側に合わせ増減してください。時刻は ISO8601、深刻度は warn と critical など固定語彙にするとルール設定が楽です。署名や共有秘密を付ける場合はヘッダ側で検証します。
{
"source": "openclaw-watchdog",
"host": "rented-mac-mini-01",
"severity": "critical",
"ts": "2026-03-24T12:34:56+09:00",
"exit_code": 1,
"probe": "http://127.0.0.1:18789/health",
"last_log_lines": ["bind: address already in use", "retry in 30s"],
"runbook_url": "https://runmini.com/ja/blog/articles/2026-openclaw-daemon-healthcheck-webhook-rent-mac-mini.html#exit"
}
終了コード早見表
| コード | 想定原因 | まず見る場所 |
|---|---|---|
| 0 | 正常終了 | 意図停止か |
| 1 | 設定・依存不備 | stderr、doctor |
| 126 | 実行権限 | chmod +x、shebang |
| 127 | コマンド無し | PATH、plist 絶対パス |
| 137 | OOM・SIGKILL | メモリ・同機ジョブ |
| 143 | SIGTERM | メンテ・手動 kill |
引用メモ(3点)
- プローブ間隔:本番は 60秒前後を既定にし、障害中だけ間隔を短くするとアラートの騒音が抑えられます。
- ThrottleInterval:30〜120秒を入れて再起動嵐を抑え、原因調査の猶予を確保します。
- ログローテ:
newsyslogやサイズローテでディスク枯渇を防ぎます。
次の一手
反映後は購入で Mac Mini を確保し、長期タスクへ載せ替えましょう。