組み込みの機能 Launchd と CrashReporter を利用して、要件を達成できると思います。
Launchdは、バックグラウンド プロセスの起動と監視を目的とした OS X システム スーパーバイザであり、通常は XPC サービスの実行に使用されます。Launchd エージェントは、さまざまなシステム イベントに反応し、プロセスがクラッシュした場合にプロセスを再起動するように構成できます (プロパティ リストKeepAlive/SuccessfulExit
のキーで指定) 。
Launchd は、ファイルやディレクトリの監視、スケジュールされた時間、ネットワーク接続のリッスンなど、さまざまなシステム イベントに起動イベントとして反応するように設定できます。
CrashReporterは、すべてのプロセス クラッシュをキャッチしてログに記録する OS X システム機能です。これはAppleSystemLogger 機能を介してログを記録し、リンクされた TechNote に記載されている syslog ツールを使用してアクセスできます。Mountain Lion では、ユーザー プロセスのクラッシュ レポートは~/Library/DiagnosticReports/
、クラッシュ イベントごとに作成されたクラッシュ ログと plist ファイルのペアとともに、.
これらの機能をいくつかの方法で使用して要件を達成できると思います.launchdがxpcサービスの実行を担当している場合、クラッシュイベントでサービスを再起動する責任があり、アプリのクラッシュから切り離すことができます.
QueueDirectories
新しいログのクラッシュ レポート ディレクトリを監視して (たとえば、プロパティを使用して)、クラッシュ イベントに応答し、アプリケーションを再起動する、または通知を表示する launchd エージェントを作成できます。