将Windows应用程序作为服务运行?

时间:2010-05-19 21:01:12

标签: windows windows-services windows-server-2008 windows-server-2003

将Windows应用程序作为服务运行而不触及其代码的最干净,最可靠的方法是什么?

用例:NorthScale's 64-bit Windows version of memcached作为通用应用程序运行。我想将它粘贴到Windows 2003或2008服务中,这样我就可以通过标准接口启动/停止/重启/等等。

3 个答案:

答案 0 :(得分:5)

Windows Resource Kit有任何可执行文件,srvany.exe可以使用,如here所述,基本上可以将任何exe作为服务运行。设置有点复杂(需要注册表编辑),但应该适用于大多数可以作为用户应用程序运行的东西。

答案 1 :(得分:1)

如果您无法修改应用程序,则会有一堆“作为服务运行”包装器 我使用过cygrunsrv.exe,我认为它适用于非cygwin可执行文件。

答案 2 :(得分:0)

如果您无法更改代码,则无法直接将该应用作为服务运行。但是Make a Win32 service应该不难 - 这一切都围绕着调用一个api:StartServiceCtrlDispatcher。为响应来自服务控制管理器的命令,您的包装器服务将在memcached应​​用程序上创建CreateProcess等。