0

我正在尝试让 JBoss EAP 6.2 作为 Windows Server(64 位)上的窗口服务运行。我用 prunsrv 定义了服务,如下所示:

prunsrv install "JBoss EAP" --DisplayName="JBoss EAP" --LogLevel=DEBUG --LogPath=d:\Java\jboss-eap-6.2\domain\log\ --LogPrefix=service --StdOutput=auto --StdError=auto --StopTimeout=10 --StartMode=exe --StartImage=cmd.exe --StartPath=d:\Java\jboss-eap-6.2\bin ++StartParams="/c;domain.bat" --StopMode=exe --StopImage=cmd.exe --StopPath=d:\Java\jboss-eap-6.2\bin ++StopParams="/c;jboss-cli.bat;--controller=192.168.50.3:8888;--connect;command=/host=master:shutdown"

我更改了该服务的登录用户,以便它在属于管理员组的帐户下运行。

我能够很好地启动服务,但我无法让它正常停止。“正确”是指当我停止服务时,我会看到“服务控制”对话框,上面写着:

“Windows 正在尝试停止本地计算机上的以下服务”

查看 JBoss 日志文件,我可以看到 JBoss 正确关闭,并且使用任务管理器我可以看到所有 Java.exe 进程都消失了。但是,服务控制对话框不会“正常”关闭。它最终超时,我得到另一个对话框,显示“错误 1053:服务没有及时响应启动或控制请求”,任务管理器显示 prunsrv.exe 仍在运行。然后该服务以“停止”状态挂起,我必须使用 TaskKill 来终止任务并将服务重置为可以重新启动它的状态。

当我查看 service.*.log 文件时,我看到以下内容:

[2015-09-11 11:42:55] [debug] ( prunsrv.c:844 ) [25200] reportServiceStatusE: 4, 0, 0, 0
[2015-09-11 11:42:57] [debug] ( prunsrv.c:844 ) [25200] reportServiceStatusE: 4, 0, 0, 0
[2015-09-11 11:42:57] [debug] ( prunsrv.c:844 ) [25200] reportServiceStatusE: 3, 0, 3000, 0
[2015-09-11 11:42:57] [info]  ( prunsrv.c:943 ) [10984] Stopping service...
[2015-09-11 11:42:57] [debug] ( prunsrv.c:1057) [10984] Waiting for stop worker to finish...

我已经尝试了几天来找出问题所在,但是我碰壁了,我没有想法。到目前为止,LogLevel=DEBUG 还没有解决这个问题,所以我正在寻找可以帮助我调试的想法。谁能给我一个建议?

谢谢

4

1 回答 1

1

事实证明,问题出在我使用的启动命令上。启动命令的前面需要一个“set NOPAUSE=Y”。例如

++StartParams="/c;set;NOPAUSE=Y;&&;domain.bat"

一旦我添加了它,它就成功了。

于 2015-09-29T16:24:42.723 回答