2009-09-14 28 views
3

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

我选择cmd shell的原因是简单的驱动器映射。理论上我可以用perl或者python来包装它,无论哪一个更容易得到这个行为,但是我仍然需要为映射这些驱动器而炫耀。这有意义吗?

回答

2

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

3

AlwaysUp是SrvAny的商业替代方案,它涵盖了像这样的缺点以及添加更多有用的功能。

NSSM是一个开源替代品,功能比AlwaysUp稍少,但仍然可以在停止服务时终止基础进程。