问题:
若springboot通过在cmd窗口运行java -jar的方式部署在windows系统,在cmd窗口关闭后,服务会同时关闭。
以下方式可以把服务注册到系统并长期运行:
首先下载WinSW。这是一个把服务在系统上注册、卸载的工具,github上开源。可以在这里下载WinSW的github地址。主要下载winsw.exe和winsw.xml两个文件,下载后放入一个目录例如winsw。
下载后把这两个文件修改为服务的名字。并打开xml文件编写配置,示例如下:
1
2
3
4
5
6
7
8<service>
<id>xxx-service</id> <!--服务ID-->
<name>xxx后端服务</name> <!--服务名-->
<description>xxx后端服务</description> <!--服务描述-->
<executable>F:\Java\xxx部署测试\jre1.8.0_231\bin\java</executable> <!--运行方式-->
<arguments>-jar "F:\Java\xxx部署测试\xxx-0.0.1-SNAPSHOT.jar"</arguments> <!--执行参数-->
<logmode>rotate</logmode> <!--循环日志-->
</service>更多具体参数可参考官网。
在winsw同目录下放入springboot打包后的xxx-0.0.1-SNAPSHOT.jar。
关于注册与开启服务。进入winsw目录,打开cmd窗口。
运行以下命令以注册服务:
1
xxx-service install
运行以下命令以启动服务:
1
xxx-service start
此时,可在任务管理器——服务选项看到此服务并已开启。(测试时重启系统后服务会自动开启,需加以验证)。
关于停止与卸载服务。进入winsw目录,打开cmd窗口。
运行以下命令以停止服务:
1
xxx-service stop
运行以下命令以卸载服务:
1
xxx-service uninstall
*可以编写对应bat脚本,方便操作。示例如下:
1
2
3
4off
::打开cmd注册xxx服务,然后启动
start cmd /k "cd/d winsw&&xxx-service install&&xxx-service start&&exit"1
2
3
4off
::打开cmd停止xxx服务,然后卸载
start cmd /k "cd/d winsw&&xxx-service stop&&xxx-service uninstall&&exit"此两bat文件放于winsw同目录下,双击运行即可。