Java как windows-служба?

Доброе время суток!

Задача состоит в том, чтобы запустить jar как windows службу. Для этого использую prunsrv.exe от Apache (commons.apache.org/proper/commons-daemon/procrun.html). Проблема состоит в том, что при использовании режима Java я натыкаюсь на проблему "Область данных, переданная по системному вызову, слишком мала." Помогите понять в чем конкретно проблема и исправить ее.

Вот опции, передающиеся в prunsrv.exe

set OPTIONS=--JvmOptions=-Xss4M;-Xmx512M;-Xms256M;-Dbasedir="%HOME%";-Dapp.home="%HOME%";-Dapp.name="jService";-Dsun.net.inetaddr.ttl=90;-XX:+HeapDumpOnOutOfMemoryError;-XX:HeapDumpPath="%JSERVICE_HEAP_LOG%" ^
--StartMode=Java --StartClass=com.inet.jservice.WebSocketCryptographyDaemonController --StartParams="start" --StartMethod=main --StopMode=Java --StopClass=com.inet.jservice.WebSocketCryptographyDaemonController --StopParams="stop" --StopMethod=main ^
--LogPath="%LOG_HOME%" --PidFile="%PID_FILE%" --StdOutput="%PRUNOUT_LOG%" --StdError="%PRUNERR_LOG%" --LogLevel=Debug ^
--Startup=auto --Classpath="%JSERVICE_PATH%" --Description="123"

Затем

".\prunsrv.exe" //IS//"jService" %OPTIONS%
".\prunsrv.exe" //ES//"jService"

Логи prunsrv

[2016-05-02 10:11:03] [debug] ( prunsrv.c:1679) [ 4328] Commons Daemon procrun log initialized
[2016-05-02 10:11:03] [info] ( prunsrv.c:1683) [ 4328] Commons Daemon procrun (1.0.15.0 32-bit) started
[2016-05-02 10:11:03] [debug] ( prunsrv.c:561 ) [ 4328] Installing service...
[2016-05-02 10:11:03] [info] ( prunsrv.c:600 ) [ 4328] Service jService name
[2016-05-02 10:11:03] [debug] ( prunsrv.c:616 ) [ 4328] Setting service description Cryptography web socket service,Inet Company Ltd.,2016
[2016-05-02 10:11:03] [info] ( prunsrv.c:634 ) [ 4328] Service 'jService' installed
[2016-05-02 10:11:03] [info] ( prunsrv.c:1764) [ 4328] Commons Daemon procrun finished
[2016-05-02 10:11:03] [debug] ( prunsrv.c:1679) [ 6580] Commons Daemon procrun log initialized
[2016-05-02 10:11:03] [info] ( prunsrv.c:1683) [ 6580] Commons Daemon procrun (1.0.15.0 32-bit) started
[2016-05-02 10:11:03] [info] ( prunsrv.c:725 ) [ 6580] Starting service 'jService' ...
[2016-05-02 10:11:03] [debug] ( prunsrv.c:1679) [ 2916] Commons Daemon procrun log initialized
[2016-05-02 10:11:03] [info] ( prunsrv.c:1683) [ 2916] Commons Daemon procrun (1.0.15.0 32-bit) started
[2016-05-02 10:11:03] [info] ( prunsrv.c:1596) [ 2916] Running 'jService' Service...
[2016-05-02 10:11:03] [debug] ( prunsrv.c:1374) [ 2572] Inside ServiceMain...
[2016-05-02 10:11:03] [debug] ( prunsrv.c:844 ) [ 2572] reportServiceStatusE: 2, 0, 3000, 0
[2016-05-02 10:11:03] [info] ( prunsrv.c:1127) [ 2572] Starting service...
[2016-05-02 10:11:05] [error] ( prunsrv.c:746 ) [ 6580] Failed to start 'jService' service
[2016-05-02 10:11:05] [error] ( prunsrv.c:746 ) [ 6580] Область данных, переданная по системному вызову, слишком мала.
[2016-05-02 10:11:05] [info] ( prunsrv.c:754 ) [ 6580] Start service finished.
[2016-05-02 10:11:05] [error] ( prunsrv.c:1755) [ 6580] Commons Daemon procrun failed with exit value: 5 (Failed to start service)
[2016-05-02 10:11:05] [error] ( prunsrv.c:1755) [ 6580] Область данных, переданная по системному вызову, слишком мала.

Не передаются какие-то параметры в prunsrv.exe? Используется не та JRE? Или нужна JDK?
  • Вопрос задан
  • 3073 просмотра
Пригласить эксперта
Ответы на вопрос 1
kursorik2
@kursorik2
Junior-Developer
Запусти файл с привилегиями SYSTEM (на Windows), на Linux`ах просто запускай через sudo либо root.
Можно создать sh/bat-сценарий, который сделает всю работу за вас.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы