は、私はあなたがおそらくを利用することができると思いますLaunchdとCrashReporterの組み込み機能を使用して要件を満たすことができます。
Launchdは、バックグラウンドプロセスの起動と監視を目的としたOS Xシステム管理者であり、通常はXPCサービスの実行に使用されます。 Launchdエージェントはさまざまなシステムイベントに反応し、クラッシュした場合にプロセスを再起動するように設定できます(property listのKeepAlive/SuccessfulExit
キーで指定)
Launchdは、起動イベントとしてさまざまなシステムイベント、スケジュールされた時刻、またはネットワーク接続のリッスンなど、さまざまな機能を実行できます。
CrashReporterは、すべてのプロセスクラッシュをキャッチして記録するOS Xのシステム機能です。 AppleSystemLogger facilityを介してログに記録され、リンクされたTechNoteに記載されているsyslogツールを使用してアクセスできます。マウンテンライオンでは、ユーザープロセスのクラッシュレポートは~/Library/DiagnosticReports/
になり、クラッシュイベントごとにクラッシュログとplistファイルのペアが作成されます。
私はあなたの要件を達成するためにいくつかの方法でこれらの機能を使用できると思います。もしlaunchdがxpcサービスの実行を担当していれば、クラッシュイベント時に再起動する可能性があり、クラッシュします。
新しいログにクラッシュレポートディレクトリ(たとえば、QueueDirectories
プロパティを使用)を監視してアプリケーションを再起動するか、通知を表示することで、クラッシュイベントに応答する起動エージェントを作成できます。
出典
2013-01-23 06:26:18
cms
1! – Floris