б) Затем вы пишете mxbean (проверьте ссылки выше). Этот mxbean будет использован для изменения значения isShutDownTrigerred на true. Вы можете использовать такой инструмент, как jconsole / jManage, чтобы увидеть и изменить mxbeans java-приложения. Как только для «isShutDownTriggered» будет установлено значение true, вышеуказанный поток узнает его и выполнит завершение работы приложения.
ользую пользовательский обработчик сигналов для перехвата сигналов TERM, ABRT и INT в пользовательском Java-демоне. У меня есть этот обработчик в коде, так что я могу отправлять ему сигналы TERM и корректно завершать работу программы с помощью команды kill. Обработчик сигнала работает прямо сейчас, но когда я компилирую код, я получаю следующее предупреждение (много раз):
предупреждение: sun.misc.SignalHandler является проприетарным API Sun и может быть удален в будущем выпуске
при использовании этих классов:
import sun.misc.SignalHandler;
import sun.misc.Signal;
Есть ли лучший способ отправить сигналы работающей JVM, чтобы инициировать отключение основного потока? Мне не нравится привязывать мой код к этому API, когда он может быть удален в будущем.
Этот код работает на Solaris и HPUX сегодня, используя 1.5.0_22 JVM. Любая помощь или предложения будут высоко оценены. Я использовал этот документ от IBM для разработки обработчика сигналов:
http://www.ibm.com/developerworks/java/library/i-signalhandling/