2

Commons Daemonのprocrunを使用して、Windows サービスとして Java アプリケーションを実行しています。Windows XP SP3 で動作しています。

アプリケーションは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\ParametersDependsOnキーは ActiveMQ に正しく設定されていますが、DependsOnServiceキーの HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestGenerator\Parametersリストには ActiveMQ がありません。

SC.exe を使用して依存関係を設定することはできますが、上記の他のすべてのパラメーターを指定することはできません。

Procrun で DependsOn を正常に使用できたかどうか教えてください。

4

1 に答える 1

2

私はついに、この--DependsOnオプションが他のいくつかのオプションとともに、たとえばor installコマンドで--Startupのみ機能し、 orupdateコマンドでは機能しないことを理解しました。//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の使用に問題がある場合、私はこの問題を含むいくつかの指示を書きました。

于 2011-11-19T04:28:00.860 に答える