是否有任何快速的方法,给定一个可执行文件,创建一个Windows服务,当启动时,启动它?


当前回答

与Sergii Pozharov的答案相同,但使用PowerShell cmdlet:

New-Service -Name "MyService" -BinaryPathName "C:\Path\to\myservice.exe"

参见New-Service了解更多定制。

这只适用于已经实现Windows服务API的可执行文件。

其他回答

您可以查看我的小型免费实用程序的服务创建\编辑\删除操作。下面是创建示例:

执行服务->修改->创建

可执行文件(谷歌驱动器):[下载]

源代码:[下载]

博客文章:[BlogLink]

服务编辑器类:WinServiceUtils.cs

也许你所有的答案都更好,但是——只是为了完整地选择选项——我想提醒一下多年来使用的旧的、类似的方法:

SrvAny(由InstSrv安装)

如下所述: https://learn.microsoft.com/en-us/troubleshoot/windows-client/deployment/create-user-defined-service

几年前,我创建了跨平台的服务管理器软件,这样我就可以在Windows、Mac和Linux操作系统上启动PHP和其他脚本语言作为系统服务:

https://github.com/cubiclesoft/service-manager

Service Manager是一组预编译的二进制文件,使用几乎相同的命令行选项在目标操作系统上安装和管理系统服务(源代码也可用)。每个平台确实有细微的差异,但核心功能大多是标准化的。

如果子进程死亡,服务管理器将自动重新启动它。

使用Service Manager启动的进程应该定期观察两个通知文件,以处理重新启动和重新加载请求,但它们不一定要这样做。如果子进程没有及时响应受控的重新启动/重新加载请求,Service Manager将强制重新启动子进程。

这些额外的东西证明是有用的。需要以管理员身份执行

sc create  <service_name> binpath= "<binary_path>"
sc stop    <service_name>
sc queryex <service_name>
sc delete  <service_name>

如果您的服务名称有空格,请用引号括起来。

使用NSSM(非吸吮服务管理器)将. bat或任何. exe文件作为服务运行。

http://nssm.cc/

步骤1:下载NSSM 步骤2:使用nssm.exe Install [serviceName]安装服务 步骤3:这将打开一个GUI,您将使用它来定位您的可执行文件