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

Dar*_*mas 7 windows windows-services

假设我有第三方应用程序执行后台工作,但将所有错误和消息打印到控制台.这意味着,目前,我们必须让用户登录到服务器,并在每次重新启动时重新启动应用程序(双击).

不太酷.

我很确定,有一种简单的方法可以做到这一点 - 通用服务包装器,可以配置日志文件stdoutstderr.

我做了检查svchost.exe,但根据这个网站,它只用于DLL的东西.可怜.

编辑:应用程序需要从批处理文件启动.FireDaemon似乎可以做到这一点,但我觉得它有点矫枉过正,因为可以在<10行的python代码中完成......哦,不是在这里发明的 ......

Dav*_*ebb 11

srvany.exe资源工具包中查看.这将让任何东西作为服务运行.

您可以将服务定义中的参数传递给可执行文件,srvany.exe这样您就可以通过按如下方式设置注册表来将批处理文件作为服务运行:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters]
"Application"="C:\\Windows\\System32\\cmd.exe"
"AppParameters"="/C C:\\My\\Batch\\Script.cmd"
"AppDirectory"="C:\\My\\Batch"
Run Code Online (Sandbox Code Playgroud)

注意:如果您设置这些键RegEdit而不是使用文件,则只需要在值中使用单个反斜杠.


Bra*_*rad 5

我推荐NSSM:The Non-Sucking Service Manager

  • 32/64 位 EXE
  • 公共区域 (!)
  • 正确实现服务停止消息,并向您的应用程序发送正确的信号以正常关闭。