参考:用winsw让任何Windows程序都能运行为服务html
简介
在linux下部署springboot项目是一件很简单的事,直接后台运行就好了,最多写个shell脚本开机自启就好了。咱们最近作的项目须要在windows上部署,在windows上运行jar有一个问题,运行的时候会弹出一个cmd窗口,而且不能关闭,关闭的话程序就中止了。spring官方推荐使用winsw来将springboot项目做为服务运行,参考https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#deployment-windows。linux
安装使用git
下载地址:https://github.com/kohsuke/winsw/releases
winsw的使用比较简单。从github上下载:winsw下载,要下载的文件有两个:1.winsw.exe程序;2.xml配置文件。github
我下载的是最新版本的WinSW.NET4.exe和sample-minimal.xml。下载完成后,将下载的两个文件及springboot项目的jar包放在同一个文件夹中。spring
须要将winsw执行程序跟xml改为一样的名字,推荐使用项目名+Service的命名方式,shell
好比:WinSW.NET4.exe改为 myProjectService.exe,sample-minmal.xml 改为myProjectService.xml。windows
编辑myProjectService.xml文件,配置以下图:springboot
配置完成后,命令行进入winsw所在的文件夹,执行添加服务命令spring-boot
myProjectService.exe install
其中myProjectService是你修改后的名称。spa
注意:命令提示符界面要用管理员权限进入,不然安装服务会失败,提示“WMI Operation failure: AccessDenied”
进入服务界面,能够看到myProject服务已经生成了:
命令提示符界面-启动服务。
net start myProject
删除服务
删除服务分为两步:1中止服务;2删除服务,都是在命令行界面实现。
中止运行服务。
net stop myProject
删除服务。
myProjectService.exe uninstall
最后
上面全部的命令均可以写在批处理文件中,部署的时候就能够实现一键部署了。
将命令写在批处理文件中,但愿将批处理文件默认为管理员权限打开,能够在批处理文件的开头写上:
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"
转载:https://blog.csdn.net/qq_28566071/article/details/80882503