我正在尝试让 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 还没有解决这个问题,所以我正在寻找可以帮助我调试的想法。谁能给我一个建议?
谢谢