将Windows应用程序作为服务运行而不触及其代码的最清洁,最可靠的方法是什么?将Windows应用程序作为服务运行?
使用案例:NorthScale's 64-bit Windows version of memcached作为通用应用程序运行。我想将其粘贴到Windows 2003或2008服务中,以便通过标准接口启动/停止/重新启动/等等。
将Windows应用程序作为服务运行而不触及其代码的最清洁,最可靠的方法是什么?将Windows应用程序作为服务运行?
使用案例:NorthScale's 64-bit Windows version of memcached作为通用应用程序运行。我想将其粘贴到Windows 2003或2008服务中,以便通过标准接口启动/停止/重新启动/等等。
该Windows Resource Kit具有任何可执行文件,srvany.exe
,可以使用,如描述here,基本上运行任何exe作为服务。该设置有点复杂(需要注册表编辑),但应适用于大多数可作为用户应用程序运行的内容。
如果你不能修改应用程序,那么有一堆“作为服务运行”的包装。
我已经使用了cygrunsrv.exe,我认为它适用于非cygwin可执行文件。
如果您无法更改代码,那么您无法直接将该应用程序作为服务运行。然而,Make a Win32 service不应该很难 - 它全部围绕着调用一个API:StartServiceCtrlDispatcher。为了响应来自服务控制管理器的命令,你的包装器服务将在memcached应用程序上执行CreateProcess等。
完美的作品,谢谢。 – 2010-05-20 14:31:13