gpt4 book ai didi

java - 在 Commons Daemon 中正确使用 Procrun 中的 DependsOn 选项

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:14 24 4
gpt4 key购买 nike

我有一个 java 应用程序作为 Windows 服务运行,使用 procrun来自 Commons Daemon。它在 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\Parameters 时,它的 DependsOn 键已正确设置为 ActiveMQ,但 DependsOnService 键在HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\TestGenerator\Parameters 未列出 ActiveMQ。

我可以使用 SC.exe 设置依赖项,但它不允许我指定上面的所有其他参数。

谁能告诉我他们是否能够成功地将 DependsOn 与 Procrun 结合使用,如果可以,我做错了什么?

最佳答案

我终于发现 --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 ,包括这个问题。

关于java - 在 Commons Daemon 中正确使用 Procrun 中的 DependsOn 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com