Как перехватить СИГНАЛ в java-приложении, инициализированном с помощью сценария bash

Я улавливаю сигнал INT в java, используя следующий код:

    Signal.handle(new Signal("INT"), new SignalHandler () {
        public void handle(Signal sig) {

            log.warn("Received SIGINT signal. Will teardown.");

            task.tearDown();

            // Force exit anyway
            System.exit(1);
        }
      });

Когда я Я использую java -jar file.jar для запуска моего приложения. Я могу поймать сигнал, отправленный с помощью kill -INT PID .

Если я вызываю java -jar file.jar & (jvm работает в фоновом режиме), я не могу поймать сигнал, отправленный с помощью kill -INT .

Любой идеи?

Спасибо.

8
задан simao 10 November 2010 в 17:36
поделиться