1

Commons Daemon의 procrun을 사용하여 Windows 서비스로 실행되는 Java 응용 프로그램을 가지고 있습니다. Windows XP SP3에서 실행 중입니다.Commons Daemon의 Procrun에서 DependsOn 옵션의 올바른 사용

응용 프로그램은 ActiveMQ에 따라, 나는

@echo off 

if "%OS%" == "Windows_NT" setlocal 

set "APPLICATION_SERVICE_HOME=%cd%" 
set EXECUTABLE_NAME=TestGenerator.exe 
set EXECUTABLE=%APPLICATION_SERVICE_HOME%\%EXECUTABLE_NAME% 
set SERVICE_NAME=TestGenerator 

set CG_START_CLASS=net.test.testgenerator.startup.TestGeneratorApp 
set CG_STOP_CLASS=%CG_START_CLASS% 
set CG_START_METHOD=controlTestGeneratorService 
set CG_STOP_METHOD=%CG_START_METHOD% 
set CG_START_PARAMS=start 
set CG_STOP_PARAMS=stop 
set CG_DEPENDS_ON=ActiveMQ 
set CG_STARTUP_TYPE=auto 

set PR_DESCRIPTION=Test Generator v1.0 
set "PR_INSTALL=%EXECUTABLE%" 
set "PR_LOGPATH=%APPLICATION_SERVICE_HOME%\logs" 
set "PR_CLASSPATH=%APPLICATION_SERVICE_HOME%;%APPLICATION_SERVICE_HOME%\testgenerator.jar;%APPLICATION_SERVICE_HOME%\lib" 
set PR_DISPLAYNAME=Test Generator Service 

echo Installing service '%SERVICE_NAME%' ... 

"%EXECUTABLE%" //IS//%SERVICE_NAME% --Startup %CG_STARTUP_TYPE% --StartClass %CG_START_CLASS% --StopClass %CG_STOP_CLASS% 
"%EXECUTABLE%" //US//%SERVICE_NAME% --StartMode jvm --StopMode jvm --DependsOn %CG_DEPENDS_ON% 
"%EXECUTABLE%" //US//%SERVICE_NAME% --StartMethod %CG_START_METHOD% --StopMethod %CG_STOP_METHOD% 
"%EXECUTABLE%" //US//%SERVICE_NAME% --StartParams %CG_START_PARAMS% --StopParams %CG_STOP_PARAMS% 
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%APPLICATION_SERVICE_HOME%\temp;" --JvmMs 128 --JvmMx 256 
echo The service '%SERVICE_NAME%' was installed. 

그러나, ActiveMQ는이 서비스 종속성 탭 \ 관리 도구에서 종속성으로 표시되지 않습니다 다음 배치 스크립트를 통해 서비스를 설치했습니다. 내가 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestGenerator\Parameters 볼 때

, 그것은 제대로 ActiveMQ를로 설정 DependsOn 키를 가지고 있지만, HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestGenerator\ParametersDependsOnService 키를 나열 ActiveMQ를이 없습니다.

SC.exe를 사용하여 종속성을 설정할 수 있지만 위의 다른 모든 매개 변수를 지정할 수 없습니다.

Procrun과 함께 DependsOn을 성공적으로 사용할 수 있었는지 알 수 있습니까? 그렇다면 무엇이 잘못 되었습니까?

+0

안녕하세요 Ulrich, 내 apache 데몬 서비스가 올바르게 설정되었는지 잘 모르겠습니다. 내 Q를 확인 하시겠습니까? http://stackoverflow.com/questions/33487583/why-doesnt-my-service -using-apache-daemon-work-in-the-services-tool? thanks – Coffee

답변

1

나는 결국 --DependsOn 옵션을 몇 가지 다른 옵션과 함께 알아 냈습니다. --Startup//IS 또는 설치 명령에서만 작동하며 //US 또는 업데이트 명령과는 작동하지 않습니다. 문제

"%EXECUTABLE%" //IS//%SERVICE_NAME% --Startup %CG_STARTUP_TYPE% --StartClass %CG_START_CLASS% --StopClass %CG_STOP_CLASS% --DependsOn %CG_DEPENDS_ON% 

다른 사람이 내가이 문제를 포함, 몇 instructions을 쓴 procrun를 사용하여 문제가있는 경우를 해결할 것 //IS 명령에 --DependsOn 옵션을 이동 위의 예에서

.