Windows srvany.exe和服务STOP

时间:2009-09-14 23:20:26

标签: windows-services

我已经在线阅读了很多关于如何使用SRVANY.exe创建Windows服务的答案。我的服务是一个批处理文件,用于设置环境(我需要设置env vars和map驱动器),然后生成我的c ++应用程序。但是,当我执行NET STOP时,srvany.exe进程消失,我的c ++应用程序保持活动状态。有没有办法让它在收到停止命令时被杀死?我需要能够在任何配置文件更改的情况下将其退回。

我选择cmd shell的原因是简单的驱动器映射。从理论上讲,我可以使用perl或python来包装它,无论哪种更容易获得这种行为,但是我还是需要shell来映射驱动器。这有意义吗?

2 个答案:

答案 0 :(得分:3)

AlwaysUp是SrvAny的商业替代品,除了添加更多有用的功能外,还涵盖了类似这样的缺点。

NSSM是一个开源替代方案,其功能略少于AlwaysUp,但是当您停止服务时它仍可以杀死基础进程。

答案 1 :(得分:2)

不,srvany不是为了阻止你的申请而设计的。主要目的是能够将应用程序作为不是作为服务运行的服务启动。 作为一种笨拙的解决方法,您可以运行一个计划任务,监视srvany是否运行,如果不运行,它将终止您的应用程序。