2016-03-21 16 views
0

私は、終了後に閉じたい(実際に開いた端末インスタンスを閉じて)簡単な端末アプリを持っています。端末のMacアプリケーションをプログラムで終了しますか?

Macアプリケーションを強制終了する方法については多くの質問がありますが、端末macアプリケーションには該当しないようです。

私は私のプログラムの最後に次のことを実行している試してみました:

NSApplication.sharedApplication().terminate(0) 

kill(getppid(), SIGKILL); 

が、それらのどれもが、実際にウィンドウを閉じます。誰かが正しい方向に私を指すことができる、またはこれが可能な場合でもですか?単に実行

+4

ユーザが既に他のターミナルウィンドウを開いている場合はどうなりますか?私は通常、いくつかのコマンドを実行するとターミナルを終了させると、少なくとも2つのターミナルウィンドウが開いていて、迷惑になることがあります。 – Caleb

+0

私はターミナルアプリケーションを閉じたいと思っていますが、私はそれまでのことが分かりません。 –

+0

私はまだあなたが何を得ているのか分かりません。あなたは、MacOS Xに付属のターミナルエミュレータであるTerminal.appについて話しているのですか、あるいはあなた自身のターミナルエミュレータを書いていますか? – Caleb

答えて

0

exit(0); 

は...すぐに、端末のコマンドラインツールや、完全なGUIアプリ天気を、すべてのMacのプロセスを終了します。

終了する前にユーザーデータを保存するよう設計されたものをバイパスするため、GUIアプリケーションでは実行しないでください。ただし、ターミナル内で正しい機能です。

ターミナルウィンドウは、コマンドラインツールがシェル内で実行されていない場合にのみ閉じられます。それでも、ターミナルは "シェル終了時"が "ウィンドウを閉じる"または "シェルがきれいに終了した場合はウィンドウを閉じる"に設定されている場合にのみウィンドウを閉じます。

終了するために提供された番号0は、あなたのツールがきれいに終了したことを示します。ウィンドウが閉じないようにするには、別の番号を返します(そして、エラーメッセージを表示する必要があります)。

関連する問題