2011-06-15 9 views
1

ボタンをクリックすると、私のココアアプリからシェルスクリプトを実行します。私はそれを行うためにsystem()呼び出しを簡単に使うことができますが、それだけでは必要ではありません。私は、スクリプトを呼び出すとすぐに、またはスクリプトを呼び出す前に、アプリケーションを閉じる必要があります。基本的にはスクリプトを実行するには数秒かかるので、私はその時間までにアプリケーションを閉じる必要があります。理由は私がこれを必要とする理由は、私は、スリープ状態にMacを置く簡単なアプリケーションを書いているが、その前にそれはシェルスクリプトを介して多くのクリーンアップと私は基本的にこのアプリケーションを開けないようにしたいシステムは睡眠から戻ってくる。シェルスクリプトを実行してココアでアプリケーションを閉じるにはどうすればいいですか

フォークなどの仕事をしたり、これを行うには特別な魔法が必要ですか?

はあなたが

+0

私はフォークがうまくいくと思います。ちょうどフォークし、あなたが閉じる必要があるすべての呼び出しを行います。 –

答えて

0

あなたが代わりにシステムの)(popenの使用することができますありがとうございました()。 initプロセスは、アプリケーションの終了後に実行するスクリプトの所有権を継承する必要があります。 fork/execも可能ですが、その意味がsystem()のものに非常に近いので、popenはよりシンプルになります。

1

ココアなら、NSTaskを使用します。スクリプトに管理者権限が必要な場合は、常にSTPrivilegedTaskがあります。

関連する問題