Apache общие демоны - прокрун. Остановить сервис зависания
Привет, я установил свой Java-сервис для запуска через Apache Common Daemons Prunsrv. У меня проблемы с его остановкой. Иногда при перезапуске сервиса из консоли сервисов windowse он зависает; Странно то, что мой сервис правильно остановлен, как показано в журналах Apache. Проблема выглядит так же, как эта https://issues.apache.org/jira/browse/DAEMON-288 даже если там, кажется, это исправление уже было реализовано в версии 0.15. С версией 0.14 проблемы нет, но с версией 0.14 случайно сервис перезапускается (не подходит для моих нужд). Здесь есть журналы, показывающие остановку сервиса:
[2016-01-19 11:12:52] [info] [ 2036] Commons Daemon procrun (1.0.15.0 64-bit) started
[2016-01-19 11:12:53] [info] [ 2036] Running 'xxxxxxx' Service...
[2016-01-19 11:12:53] [info] [ 1400] Starting service...
[2016-01-19 11:12:54] [info] [ 1400] Service started in 1546 ms.
[2016-01-19 11:58:50] [info] [ 2648] Stopping service...
[2016-01-19 11:58:51] [info] [ 2648] Service stop thread completed.
После этого консоль службы Windows печатает "stopping service
"и через некоторое время (я думаю, что 1 минута) это говорит"Windows could not stop the service on local computer. Error 1053: The service did not respond to the start or control request in a timely fashion
"; тогда служба не может быть перезапущена (консоль службы Windows продолжает указывать ее как stopping
), и мы должны перезагрузить машину.
Кто-нибудь сталкивался с такой же проблемой?
Спасибо
2 ответа
Да, я обнаружил эту проблему с версией 1.0.15, и для меня было достаточно понижения до предыдущей версии 1.0.14. Это связано с открытой ошибкой:
https://issues.apache.org/jira/browse/DAEMON-298
(Хотя 288 помечен как решенный).
Вы можете использовать System.exit(0);в вашем методе остановки, если вы не можете найти хороший способ.