停止 Windows 服务不会杀死进程(服务使用 ant)

use*_*042 7 windows java service

我在 Windows Server 2008 R2 上有一个 Windows 服务,我instsrvsrvany.exe可执行文件上设置了该服务。Parameters键中的三个值设置如下:

AppDirectory  C:\selenium-grid
Application   C:\ant\bin\ant.bat
AppParameters launch-hub
Run Code Online (Sandbox Code Playgroud)

服务启动正常,启动时任务管理器中出现两个Java进程(一个进程是ant,另一个是ant启动的Java类)。当我停止服务时,服务的状态更改为已停止,但两个 Java 进程不会消失。

当我停止服务时如何让进程停止?

the*_*bit 7

不幸的是,SRVANY 很烂。有一个替代方案是“非吮吸服务管理器”(NSSM) - 它会在服务停止信号上关闭您的应用程序和所有子进程。


Har*_*ton 2

不幸的是,srvany.exe 不提供任何在服务停止时终止进程的方法,因此基本上您的选择是(a)寻找提供此功能的第三方替代方案或(b)编写这样的自己替代。

也许其他读者知道一个好的第三方替代方案,或者您可能会幸运地通过谷歌搜索。如果您决定选择选项 (b),我也许可以为您提供一个良好的开端,因此,如果您愿意,请给我发送电子邮件 - 我的地址在我的个人资料中。或者您可以将问题发布到 StackOverflow。