Перезагрузка конфигурации с помощью Jakarta Commons Daemon - PullRequest
1 голос
/ 05 января 2010

Использование Jakarta Commons Daemon возможно ли, чтобы мое приложение Java выполняло действие (перезагрузка конфигурации), когда сигнал SIGHUP отправляется процессу jsvc? Если нет - каковы другие варианты перезагрузки конфигурации с этой библиотекой - без остановки процесса? Я посмотрел на документацию, но не нашел это ясно по этому вопросу.

Примечание: Мне не требуется кроссплатформенный способ обработки сигналов. Я просто хочу знать, что Jakarta Commons Daemon предлагает в плане перезагрузки конфигурации при использовании с платформой на основе UNIX.

1 Ответ

1 голос
/ 05 января 2010

В Java нет кроссплатформенного способа обработки сигналов. Лучше всего открыть Socket и дождаться каких-либо отзывов о нем. Используйте netcat или небольшую Java-программу для подключения к сокету. Внутри примите соединение, перезагрузите и закройте соединение. Вам даже не нужно отправлять данные туда и обратно.

[EDIT] Кажется, что нет никакой поддержки для обработки сигналов в C-части Jakarta Commons Daemon. Посмотрите эту статью из IBM о том, как реализовать свой собственный обработчик сигналов в библиотеке JNI. Он был написан для Java 1.3, но все еще действителен для Java 5 и 6.

[EDIT2] Если переносимость не является проблемой, вы можете попробовать недокументированный и неподдерживаемый класс sun.misc.Signal. Смотрите эту тему . Обратите внимание, что он не поддерживается, недокументирован и т. Д., И API не менялся в течение последних пяти лет.

...