![Prunsrv.exe 创建的 Liberty 服务在 Windows Server 2019 中自动停止](https://linux22.com/image/1586238/Prunsrv.exe%20%E5%88%9B%E5%BB%BA%E7%9A%84%20Liberty%20%E6%9C%8D%E5%8A%A1%E5%9C%A8%20Windows%20Server%202019%20%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%81%9C%E6%AD%A2.png)
我在 Windows Server 2019 上的 Websphere Liberty 中创建了一个服务器,并为其注册了一个服务。当我启动该服务时,状态更改为跑步,但几秒后该状态消失(即服务停止)。但与该服务绑定的服务器实际上是在后台运行的。
Liberty 服务器按预期运行,可以通过命令行停止,没有任何问题,唯一的问题是 services.msc 中服务状态显示不正确。这让我相信 Liberty 附带的服务包装器 (Prunsrv.exe) 与 Windows Server 2019 不兼容,因为我在 Windows Server 2008/2012/2106 上没有遇到过这个问题。
有什么具体的事情需要做才能使其在 Windows Server 2019 上运行吗?任何建议/观点都将不胜感激。
谢谢,罗南
答案1
我遇到了同样的问题。我尝试了不同的服务包装器,NSSM 和 WinSW。经过反复试验,我注意到该服务会在大约 39 秒后在我的系统上停止运行。我从命令窗口执行了相同的命令 server.bat start yourServer。我注意到从启动到批处理文件完成并返回命令提示符的时间大约为 39 秒。
WinSW 记录到事件查看器。我检查了消息并注意到 WinSW 记录了该过程已成功完成,退出代码为 0。
所以我改变了服务器的启动和运行方式。我将命令从 server.bat start yourServer 更改为 server.bat run yourServer。这有效。我现在可以启动和停止服务器了。
就我而言,我使用的是 WinSW。必须为 WinSW 配置一个 XML 文件。我使用 server.bat 以及 run 和 yourServer 的启动参数来启动服务。我使用 stop 和 yourServer 的停止参数来停止服务。
WinSW 文档可以帮助您。
我不知道您的具体情况,所以我无法提供使用您的配置的示例。