Захват сигнала уничтожения в приложении Eclipse RCP - PullRequest
1 голос
/ 13 марта 2009

У меня есть версия командной строки Eclipse RCP GUI-приложения, которая может использовать множество одних и тех же плагинов (это удобно для интеграционного тестирования). Он подключается к серверу, запрашивает данные и запускает интерактивный цикл. Для выхода пользователь приложения с графическим интерфейсом может остановить цикл и закрыть приложение.

В моем приложении командной строки самый очевидный способ "закрыть" приложение - это CTRL-C! Однако на сервере остается «сессия сеанса», которую можно очистить, если я смогу захватить сигнал выхода. В конце концов, срок годности не истечет, но было бы неплохо, если бы я тоже мог разобраться.

Итак, каковы мои варианты для захвата сигнала уничтожения из приложения Eclipse RCP? Это специфично для Linux, если это поможет. Но я не загружаю плагины SWT. Мой "основной цикл" Plugin.stop () не вызывается, когда я нажимаю ctrl-c в командной строке. Что-то вроде Python's KeyboardInterrupt было бы асом!

Ответы [ 2 ]

3 голосов
/ 13 марта 2009

Я нашел альтернативный подход - добавить хук отключения, который запускается, когда наступает конец ...

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            System.out.println("The end.");
        }
    });
1 голос
/ 13 марта 2009

Посмотрите на встроенный bash trap. Сигнал для CTRL-C - SIGINT, но вы также можете перехватывать SIGTERM и SIGHUP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...