2009-03-24 7 views
20

私はPython開発のためのPyDevプラグインと共に、Windows上でEclipseを使用しています。アプリケーションを起動するために 'Run'を使うと、新しいPython(CPython)インスタンスが生成されます。 「終了」ボタン(赤い四角)を使用すると、プロセスが終了します。しかし、それはSIGKILLを行うように見えるので、シャットダウンハンドラはクリーンアップできません。EclipseがSIGKILLを使用する代わりに穏やかに終了することは可能ですか?

EclipseにSIGTERMを送信する方法や、Eclipseコンソールからキーボード割り込み(ctrl-c)をシミュレートする方法はありますか?

注:私はこの問題を解決する可能性のあるKomodoやWingのような他のPython IDEがあることを認識していますが、これを切り替えるつもりはありません。

+1

これの解決方法/回避策はありますか? – gsagrawal

+0

EclipseはSIGKILLを使用しません。 – djechlin

答えて

10

Eclipseはシグナルを送信するJava Process APIを使用します。これはネイティブAPIであり、これを変更する方法はありません。私はあなたもSIGKILLのハンドラをインストールしようとしていると思いますが、うまくいきませんでした。

したがって、唯一の解決策は、プロセスをリストし、そのうちの1つにSIGTERMを送信する小さなバッチファイルを作成することです。コマンドプロンプトからそれを呼び出します。あなたがAlt-Tabを使ってそれを切り替えるのであれば、Eclipseの中でやっているのと同じくらい快適です。

または、バッチファイルを呼び出すプラグインを作成します。

+3

SIGKILL用のハンドラをインストールすることは、定義上、決して実行されないので、無意味です。 SIGTERMはプログラムに終了を要求します。 SIGKILLは、OSに強制的にプログラムを強制終了させる。 – Powerlord

+0

ベームローズ:私はそれほど多くはないと思っていましたが、それを見るにはあまりにも怠惰でした:) –