将Windows应用程序作为服务运行而不触及其代码的最干净,最可靠的方法是什么?
用例:NorthScale's 64-bit Windows version of memcached作为通用应用程序运行。我想将它粘贴到Windows 2003或2008服务中,这样我就可以通过标准接口启动/停止/重启/等等。
答案 0 :(得分:5)
Windows Resource Kit有任何可执行文件,srvany.exe
可以使用,如here所述,基本上可以将任何exe作为服务运行。设置有点复杂(需要注册表编辑),但应该适用于大多数可以作为用户应用程序运行的东西。
答案 1 :(得分:1)
如果您无法修改应用程序,则会有一堆“作为服务运行”包装器 我使用过cygrunsrv.exe,我认为它适用于非cygwin可执行文件。
答案 2 :(得分:0)
如果您无法更改代码,则无法直接将该应用作为服务运行。但是Make a Win32 service应该不难 - 这一切都围绕着调用一个api:StartServiceCtrlDispatcher。为响应来自服务控制管理器的命令,您的包装器服务将在memcached应用程序上创建CreateProcess等。