
WinSW简介
WinSW可以将应用打包成Windows服务的方式运行。
WinSW可以运行在已经安装了.NET Framework 4.6.1或更新版本的windows平台上。如果系统并没有安装.NET Framework,可以基于 .NET 7以项目提供的64-bit和32-bit执行文件进行执行。
github地址https://github.com/winsw/winsw
使用步骤
注意:github上的将winsw作为全局工具使用的方式应该是不支持(已尝试,并未成功,具体查看Issues里面的问题:https://github.com/winsw/winsw/issues/970),现在只能通过bundled tool方式来使用。
下面基于一个spring boot的项目进行演示说明(spring boot就是一个正常的maven项目,无需特殊的配置)。
01 下载已经编译好的可执行文件
https://github.com/winsw/winsw/releases

02 编写xml服务文件
SpringWinswDemoBackend.xml
<service> <id>SpringWinswDemoBackend</id> <name>SpringWinswDemoBackend</name> <description>Spring Winsw Demo Backend.</description> <env name="APP_HOME" value="?SE%" /> <startmode>Automatic</startmode> <delayedAutoStart/> <executable>java</executable> <arguments>-jar "%APP_HOME%/backend-serve.jar"</arguments> <logpath>?SE%/logs</logpath> <log mode="roll" /> <onfailure action="restart" /></service>
03 重命名WinSW-x64.exe
WinSW-x64.exe改名为SpringWinswDemoBackend.exe
04 安装并启动服务
将可执行文件SpringWinswDemoBackend.exe和SpringWinswDemoBackend.xml放在同一个目录下面,保证xml文件的名字和exe的文件的名字保持一致。
# 安装服务.\SpringWinswDemoBackend.exe install# 启动服务.\SpringWinswDemoBackend.exe start
可以通过操作系统中的服务发现对应的服务已经安装并启动。

#停止服务.\SpringWinswDemoBackend.exe stop#卸载服务.\SpringWinswDemoBackend.exe uninstall
命令参考
| 命令 | 描述 |
|---|---|
| install | 安装服务 |
| uninstall | 卸载服务 |
| start | 启动服务 |
| stop | 停止服务 |
| restart | 重启服务 |
| status | 查看服务状态 |
| refresh | 在不重新安装服务的情况下刷新服务属性 |
