Windows版「RestartOnCrash」にインスパイアされた、macOS用のプロセス監視・自動再起動ユーティリティです。
メニューバーに常駐し、指定したプロセスのクラッシュやハングを検出して自動的に再起動します。展示・インスタレーション・デジタルサイネージなど、無人環境での長時間運用に最適です。
- クラッシュ検出と自動再起動 — プロセスの異常終了を検知し、自動的に再起動
- ハング検出 — GUIアプリの応答なし状態を検知し、再起動(ON/OFF切替可能)
- GUIアプリ / CLIプロセス両対応 — Bundle Identifier または実行ファイルパスで指定
- プロジェクトファイル対応 — TouchDesigner (
.toe)、Max/MSP (.maxpat)、Ableton (.als) 等のファイルを開いた状態で再起動 - Graceful Shutdown — 強制終了前に正常終了を試行(タイムアウト設定可)
- 再起動前後のスクリプト実行 — キャッシュクリア、通知送信などを自動化
- 定期再起動(スケジュール) — メモリリーク対策などに、指定間隔で自動再起動
- 複数プロセスの同時監視 — プロセスごとに監視間隔・最大再起動回数を個別設定
- イベントログ — クラッシュ・再起動等のイベントを記録、フィルタ・検索対応
- ログイン時自動起動 — macOS の Login Item としてワンクリックで登録
- macOS 13.0 (Ventura) 以降
- Xcode 15.0 以降(ビルド用)
Releases から最新の RestartOnCrash.zip をダウンロードし、展開して /Applications にドラッグしてください。
git clone https://github.com/genkitoyama/Restart-On-Crash-macOS.git
cd Restart-On-Crash-macOS
open RestartOnCrash.xcodeprojXcode 15.0 以降で Cmd + R でビルド&実行します。
- メニューバーアイコンから「Open Window...」でメインウィンドウを開く
- 「Processes」タブの「+」ボタンをクリック
- プロセスタイプ(GUI / CLI)を選択
- GUIアプリの場合:
- 「Running Apps...」で実行中アプリから選択
- 「Browse .app...」で
/Applicationsから選択 - または Bundle Identifier を直接入力
- CLIの場合: 実行ファイルのパスを入力、または「Browse...」でファイル選択
- 必要に応じてプロジェクトファイルを指定(TouchDesigner, Max/MSP 等)
- 監視間隔、ハング検出、再起動待機時間、スクリプト等を設定
- 「Add」をクリック
- アプリ起動時に自動で監視が開始されます
- メインウィンドウ左下の「Start / Stop」ボタンで手動制御も可能
- メニューバーアイコンが塗りつぶしに変わると監視中
# Pre-Restart: キャッシュクリア
rm -rf /tmp/myapp-cache/*
# Post-Restart: Slack通知
curl -X POST -H 'Content-Type: application/json' \
-d '{"text":"App restarted"}' \
https://hooks.slack.com/services/xxx/yyy/zzz
# Post-Restart: ログ記録
echo "$(date): restarted" >> ~/Desktop/restart-log.txtMIT