Подтвердить что ты не робот

Возможно ли, чтобы Eclipse прекращалось, вместо использования SIGKILL?

Я использую Eclipse для Windows, с плагином PyDev для разработки Python. Когда я запускаю свое приложение "Запуск", он запускает новый экземпляр Python (CPython). Когда я использую кнопку "terminate" (красный квадрат), она убивает процесс. Однако, похоже, это SIGKILL, поэтому мой обработчик отключения не может очистить.

Есть ли способ заставить Eclipse отправлять SIGTERM или имитировать прерывание клавиатуры (ctrl-c) с консоли Eclipse?

Примечание. Я знаю, что есть другие IDE типа Python, такие как Komodo или Wing, которые могут решить эту проблему, но я не хочу переключать это.

4b9b3361

Ответ 1

Eclipse использует API-интерфейс Java, который отправляет сигнал. Это собственный API, и нет возможности изменить это. Я предполагаю, что вы также пытались установить обработчик для SIGKILL, и это не сработало.

Поэтому единственным решением было бы написать небольшой пакетный файл, в котором перечислены процессы, и отправит SIGTERM в один из них. Вызовите это из командной строки. Если вы используете Alt-Tab для переключения на него, это почти так же удобно, как и делать это изнутри Eclipse.

Или напишите плагин для вызова пакетных файлов.

Ответ 2

Я посмотрел на Как Java-программа может получить свой собственный идентификатор процесса? и придумал это.

System.out.println("kill -SIGINT "+ProcessHandle.current().pid());

Я понимаю, что это не идеально, если вы не хотите распечатывать это для производства, но если вы просто создаете прототипы, это удобно. Или вы можете поместить его внутрь, если это работает, только если вы отлаживаете.