工具介绍
以下是官方解释,大概意思是,在有权限许可情况下,作为Windows
服务的可执行容器,能够运行任何可执行程序,[传送门]https://github.com/winsw/winsw
A wrapper executable that can run any executable as a Windows service, in a permissive license
用户能够通过配置文件,将目标程序根据实际情况,通过Winsw
实现系统中服务注册和运行使用,相比Instsrv.exe
和Srvany.exe
从操作上会更偏向与配置,而不是直接操作系统注册表,减低繁琐度,但是同时也引入了,对于配置文件的操作复杂度,使用者需要为每一个目标服务程序,进行个性化配置
环境要求
WinSW 3 can run on Windows platforms with .NET Framework 4.6.1 or later versions installed. For systems without .NET Framework, the project provides native 64-bit and 32-bit executables based on .NET Core
Winsw.exe
能够运行在安装有.Net Fx 4.6.1
及其以上版本的系统中,对于没有.NET Fx
的系统,该项目提供基于 .Net Core
的本地 64 位
和32 位
可执行程序
工具下载
下载链接:https://github.com/winsw/winsw/releases
目前最新版本v2.11.0
:
【WinSW-x64.exe
】
https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW-x64.exe
下载配置文件:
【sample-allOptions.xml
】
https://github.com/winsw/winsw/releases/download/v2.11.0/sample-allOptions.xml
【sample-minimal.xml
】https://github.com/winsw/winsw/releases/download/v2.11.0/sample-minimal.xml
如果访问不到Github
可以评论
或私信
留言笔者获取资源
应用说明
由于Winsw.exe
是由配置文件进行管理,运行对应的目标程序,都需要配置对应的配置文件xxxx.xml
,一个配置文件对应着一个需要实现服务化的应用程序,以下是来自官方的安装参考内容:
Use WinSW
as aglobal
tool
- Take WinSW.exe or WinSW.zip from the distribution.
- Write myapp.xml (see the XML config file specification and samples for more details).
- Run
winsw install myapp.xml [options\]
to install the service.- Run
winsw start myapp.xml
to start the service.- Run
winsw status myapp.xml
to see if your service is up and running.
Use WinSW
as abundled
tool
- Take WinSW.exe or WinSW.zip from the distribution, and rename the .exe to your taste (such as myapp.exe).
- Write myapp.xml (see the XML config file specification and samples for more details).
- Place those two files side by side, because that’s how WinSW discovers its co-related configuration.
- Run
myapp.exe install [options\]
to install the service.- Run
myapp.exe start
to start the service.
由上述的内容可以知道Winsw.exe
的使用分为两种类型,一种是将Winsw.exe
作为全局指令使用,每次注册服务和启动服务通过配置文件进行逻辑处理
捆绑模式[通用]
下载程序后,依据实际需求,将winsw.exe
放到特定目录下,并重命名,名称尽量与目标程序名称较为关联,例如,目标程序为nginx.exe
,则可以重命名winsw.exe
为nginxservice.exe
,同时与nginxservice.exe
同目录,设置对应配置文件,与nginxservice.exe
名称保持一致,只是文件类型不同,之后对nginxservice.xml
进行配置,最后进行相关的服务注册和操作,进行捆绑模式,一个启动程序对应一个服务启动配置实例
> [servicename.exe] install [options\] > [servicename.exe] start > [servicename.exe] status > [servicename.exe] uninstall
全局模式[3.x版本]-目前不可用
将Winsw.exe
下载之后,放到一个系统环境变量相关的检索目录下,便于在当前系统的任意地方执行Winsw
相关指令都能够实现相关程序的注册和启动,安装时指定对应的服务程序配置程序配置文件
> winsw isntall appname.xml [options\] > winsw start appname.xml > winsw status appname.xml > winsw uninstall appname.xml
相关配置
参考笔者的另一篇文章太阳当空照-Windows服务化方式Winsw基本配置
,服务化常用配置如下:
<service> <id>服务唯一标识</id> <name>服务简称</name> <description>服务描述</description> <startmode>服务启动模式</startmode> <executable>执行指令</executable> <startarguments>执行参数</startarguments> <workingdirectory>工作路径</workingdirectory> <logpath>日志输出路径,默认与配置文件同目录</logpath> <log mode="输出模式"> <sizeThreshold>10240</sizeThreshold> <pattern>yyyyMMdd</pattern> <autoRollAtTime>00:00:00</autoRollAtTime> </log> <serviceaccount> <username>服务启动账户,默认为本地系统账户</username> </serviceaccount> </service>