2009-07-26 47 views
2

ユーザーがトップバーから「終了」を選択しなかった場合、Launchdを設定して自分のアプリケーションを再起動する方法が不思議です。アプリに何か起きる可能性があり、強制終了する可能性があります。プリファレンスが選択されている場合は、自動的にリスタートします。私はここに投稿する前にそれを調べました。私はLaunchdがこれをやっていてかなり良いと聞いてきました。誰もそれを達成するためのアドバイスを持っていますか?起動時に再起動アプリケーションを起動する

ありがとうございました。

答えて

2

アプリが実行されているときにプログラムがユーザーのホームフォルダに空の.somethingファイルを書き込ませるようにします。アプリケーションが正常に終了すると、.somethingファイルを削除します。 あなたのアプリが動作しているかどうかをチェックする小さなスクリプト(AppleScriptまたはシェルスクリプト)を書くことができました。もし必要ならば.somethingファイルをチェックしてください。スクリプトは、必要に応じて、アプリケーションを再起動することができます。 起動時にlaunchdを使用してスクリプトが自動的に実行されるようにスケジュールすることができます。

+0

こんにちはDiederik: 良いアイデア、しかし私はそれについて1つの質問があります。その質問は:スクリプトをいつ実行すればよいですか?アプリを何とか閉じているのかどうか、それを監視するように設定することはできますか? – PF1

+0

スクリプトは常に実行している必要があります。スクリプト内では、スクリプトがあまりにも多くのCPUを使用しないようにスリープ時間(Unixスリープ(10)など)を使用する必要があります。 Launchdではなく、ユーザーのログイン項目にスクリプトを追加することもできます。この方法では、環境設定は現在のユーザーにのみ影響します(これは私が推測する好ましい方法です)。 – diederikh

+0

そのアドバイスDiederikをありがとう。だから、スクリプトは10秒ごとにそのファイルをチェックするべきだと言っていますか?そして、それがあれば、アプリを開こうとするだろう(アプリが開いていれば、何かが起こったように見えないだろう)。しかし、私はそこにないと仮定していますが、アプリが終了すると通知を受け取る方法はありますか?あたかもこれがより簡単であるようです。 – PF1

2

KeepAliveのSuccessfulExit設定を使用すると、正常に終了しなかった場合にのみアプリケーションを再起動できます。詳細は、this Mac OS X Hints entryおよび/またはlaunchd.plistのマニュアルページを参照してください。

+0

こんにちはsmorgan:リンクありがとう。それは本当に良い見えます! – PF1

関連する問題