1

我有一個java應用程序,使用Commons Daemon的procrun作爲windows服務運行。它在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,它具有DependsOn關鍵正確設置爲ActiveMQ的,但在 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestGenerator\ParametersDependsOnService鍵列表中沒有的ActiveMQ。

我可以使用SC.exe設置依賴關係,但它不允許我指定上面的所有其他參數。

任何人都可以告訴我他們是否能夠成功地使用DependsOn與Procrun,如果是這樣,我做了什麼不正確?

+0

嗨Ulrich,我不知道如果我的Apache守護進程服務設置正確或不,你介意檢查我的Q在這裏:http://stackoverflow.com/questions/33487583/why-doesnt-my-service -using-apache-daemon-work-in-the-services-tool?謝謝 – Coffee

回答

1

我終於明白,--DependsOn選項,連同其他幾個例如--Startup僅適用於//IS或安裝命令,而不適用於//US或更新命令。

在上面移動--DependsOn選項將//IS命令將解決這一問題

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

如果任何人有使用procrun我寫了幾instructions,包括這個問題的問題的例子。

相關問題