使用prunsrv作为Window Service运行的JBoss EAP 6.2 - 无法停止服务

时间:2015-09-17 18:26:58

标签: jboss jboss7.x jboss-eap-6 procrun

我试图让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"

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

我能够很好地启动服务,但我无法让它正常停止。通过"正确"我的意思是当我停止服务时,我得到了服务控制对话框,上面写着:

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

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

当我查看服务。*。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还没有解决问题,所以我正在寻找可能有助于我调试此问题的想法。任何人都可以给我一个建议吗?

由于

1 个答案:

答案 0 :(得分:1)

事实证明,问题在于我正在使用的启动命令。启动命令需要设置NOPAUSE = Y"在它的前面。 E.g。

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

一旦我添加了它,就可以了。