WinSW:Windows服务管理神器

发表时间: 2023-11-18 09:34

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方式来使用(详细可参考英文说明:
https://github.com/winsw/winsw/blob/master/doc/installation.md)。

下面基于一个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="%BASE%" /> <startmode>Automatic</startmode> <delayedAutoStart/> <executable>java</executable> <arguments>-jar "%APP_HOME%/backend-serve.jar"</arguments> <logpath>%BASE%/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在不重新安装服务的情况下刷新服务属性