WinSW是一个可执行二进制文件,可用于包装和管理作为Windows服务的自定义进程。下载安装包后,您可以将 WinSW.exe 重命名为任何名称,例如 MyService.exe 。
WinSW提供了.NET Framework 2.0、4.0和4.6.1的可执行文件。它可以在安装了这些版本的.NET Framework的Windows平台上运行。对于没有.NET Framework的系统,该项目提供了基于.NET Core 3.1的本机64位和32位可执行文件。
可选下载地址:
CI builds are available on Azure Pipelines.
NuGet. (2.x)
WinSW通过配置文件(提供xml和yaml两种格式)的方式进行管理: Main XML configuration file 和 Main YAML configuration file .
配置完成后,可配合以下命令进行windows服务的安装、启动、停止等操作:
install 将服务安装到Windows Service Controller.
uninstall 卸载服务和上面相反的操作。
start 启动服务,该服务必须已经安装。
stop 停止服务。
stopwait 停止服务并等待,直到它实际上停止为止。
restart 重新启动服务。如果该服务当前未运行,则此命令的作用类似于start。
status 检查服务的当前状态。
大多数命令都需要管理员权限才能执行。
执行格式: MyService.exe install
<service>
<id>jenkinsid>
<name>Jenkinsname>
<description>This service runs Jenkins continuous integration system.description>
<env name="JENKINS_HOME" value="%BASE%"/>
<executable>javaexecutable>
<arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080arguments>
<log mode="roll">log>
service>
nginx示例:
<service>
<id>nginxid>
<name>nginxname>
<description>nginxdescription>
<executable>D:\WebServer\nginx-1.12.2\nginx.exeexecutable>
<logpath>D:\WebServer\nginx-1.12.2\logpath>
<logmode>rolllogmode>
<depend>depend>
<startargument>-pstartargument>
<startargument>D:\WebServer\nginx-1.12.2\startargument>
<stopexecutable>D:\WebServer\nginx-1.12.2\nginx.exestopexecutable>
<stopargument>-pstopargument>
<stopargument>D:\WebServer\nginx-1.12.2\stopargument>
<stopargument>-sstopargument>
<stopargument>stopstopargument>
service>
配置2:
<service>
<id>nginxSzGasid>
<name>nginxSzGasname>
<description>XXX项目description>
<logpath>C:\ShenZhenGasProject\nginxlogpath>
<logmode>rolllogmode>
<depend>depend>
<executable>C:\gas\nginx\nginx.exeexecutable>
<stopexecutable>C:\gas\nginx\nginx.exe -s stopstopexecutable>
service>
备注: WinSW.exe 和对应的xml配置文件进行重命名时采用相同的文件名。如: myserver.exe myserver.xml