Spring Boot项目部署为Windows服务并设置开机启动

目标:使用Spring Boot开发的Web项目,打包生成了jar包,部署在Windows服务器中,设置为开机启动

注意:windows服务器要安装java环境!!!

之前可以想到的一般方案:

1、Spring Boot生成的jar包,可以直接用java -jar运行,但是前提是需要登录用户,关掉cmd窗口程序就会停止,而且注销用户后会退出程序,所以不可用。

2、使用计划任务,写一个bat处理文件,里面写java -jar运行程序,然后把bat文件作为一个计划任务运行;结果可能是因为任务启动时,系统资源未准备好,所以没有成功。

最佳方案:WinSW

WinSW是一个可以将任何应用程序注册成服务的软件,程序以及源码都开源了,可以在GitHub下载:GitHub - winsw/winsw: A wrapper executable that can run any executable as a Windows service, in a permissive license.icon-default.png?t=M5H6https://github.com/winsw/winsw

1.下载WinSW

目前最新版本是3,与版本2使用方式不同,由于参考网上其他人的教程,选择了2的最新版本v2.11.0,下载地址为

GitHub - winsw/winsw at v2.11.0icon-default.png?t=M5H6https://github.com/winsw/winsw/tree/v2.11.0

Spring Boot项目部署为Windows服务并设置开机启动_第1张图片

将GitHub中下载的WinSW-x64.exe和sample-minimal.xml文件及项目的jar包放在同一个文件夹中

2.将WinSW执行程序跟xml改成同样的名字

推荐使用项目名+Service的命名方式,比如:WinSW-x64.exe改成mesService.exe,sample-minmal.xml改成mesService.xml。

Spring Boot项目部署为Windows服务并设置开机启动_第2张图片

3.编辑mesService.xml文件

内容如下



  
  
  ygs-mes-service
  
  ygs-mes-service
  
  某某某MES服务端(Java)
  
  
  java
  
  -Xms256m -Xmx256m -jar mes-server-1.0-SNAPSHOT.jar
  
  none


 
  

4.打开系统服务功能

运行——输入cmd,然后进入到mesService.exe所在文件夹,然后执行命令安装服务:mesService.exe install。

5.启动服务

以管理员身份在命令提示符界面输入命令 net start ygs-mes-service(服务名)启动服务。

Spring Boot项目部署为Windows服务并设置开机启动_第3张图片

或者也可以运行->输入services.msc,搜索找到自己命名的服务ygs-mes-service。在服务管理中启动服务

Spring Boot项目部署为Windows服务并设置开机启动_第4张图片

可以看到服务状态变为正在运行,说明启动成功

Spring Boot项目部署为Windows服务并设置开机启动_第5张图片

服务启动后,可以看到生成服务运行日志文件xx.wrapper.log(app-log是我jar项目配置的日志文件,不是winsw生成的)

Spring Boot项目部署为Windows服务并设置开机启动_第6张图片

打开可以看到类似如下内容

Spring Boot项目部署为Windows服务并设置开机启动_第7张图片

6.停止并删除服务

分为两步:1停止服务(需要管理员权限);2删除服务,都是在命令行界面实现。

删除后可以从windosw服务中心看到,服务确实被卸载了。

7.写批处理文件

目的:部署的时候实现一键部署

Spring Boot项目部署为Windows服务并设置开机启动_第8张图片

start.bat内容如下:

mesService.exe install

net start ygs-mes-service

stop.bat内容如下: 

net stop ygs-mes-service

mesService.exe uninstall

如果服务器上本身登录的就是管理员,双击bat运行即可(如果提示找不到命令,可能是管理员权限问题)

附录:WinSW服务常用命令

windows启动服务:net start xxxProjectService

windows停止服务: net stop xxxProjectService

卸载服务:xxService.exe uninstall

安装服务:xxService.exe install

更多命令请参考官方文档

参考链接:如何将Spring Boot项目部署为Windows服务,并设置开机启动 - 简书icon-default.png?t=M5H6https://www.jianshu.com/p/af90db4b54e3

你可能感兴趣的:(Spring,java,windows)