Вопрос

Можно ли обрабатывать сигналы POSIX на виртуальной машине Java?

Как минимум, SIGINT и SIGKILL должен быть полностью независимым от платформы.

Это было полезно?

Решение

JVM реагирует на сигналы самостоятельно. Некоторые из них приведут к корректному завершению работы JVM, что включает в себя запуск ловушек отключения. Другие сигналы приведут к прерыванию работы JVM без использования перехватчиков отключения.

Хуки выключения добавляются с использованием Runtime.addShutdownHook (Thread) .

Я не думаю, что JDK предоставляет официальный способ обработки сигналов в вашем Java-приложении. Однако я нашел эту статью IBM , в которой описывается использование некоторых недокументированный класс sun.misc.Signal , чтобы сделать именно это. Статья датируется 2002 годом и использует JDK 1.3.1, но я подтвердил, что класс sun.misc.Signal все еще существует в JDK 1.6.0.

Другие советы

Возможно, Runtime # addShutdownHook ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top