WINDOWS环境将SPRINGBOOT程序注册成为服务实现开机自启和后台运行
由于通过java -jar方式启动的springboot程序需要有一个cmd窗口,无法实现Linux上nohup命令的后台运行效果。所以需要将开发的springboot程序注册成windows服务,实现开机自启和无窗口运行。
下载WINSW.NET4.EXE
此文件下载完成之后需要与程序放在同级目录,并修改名称为 程序名.exe。
创建初始化服务的XML文件
创建一个xml文件,此xml文件也需要与程序同名,用于初始化服务。内容如下
<?xml version="1.0" encoding="UTF-8"?>
<service>
<!-- 服务ID -->
<id>win-java-service-demo</id>
<!-- 服务名称 -->
<name>win-java-service-demo</name>
<!-- 服务描述 -->
<description>xxxx</description>
<!-- jar包运行参数,指定运行程序的jdk位置 -->
<executable>C:\Program Files\Java\jdk1.8.0_161\bin\java.exe</executable>
<!-- -jar之后是jar包名称 -->
<arguments>-Xrs -Xmx512m -jar win-java-service-demo.jar</arguments>
<!-- 日志配置 -->
<logpath>D:\java服务\log</logpath>
<logmode>rotate</logmode>
</service>
此时目录下的内容如下:
初始化服务
使用管理员身份打开cmd窗口,注意一定要使用管理员身份打开,否则服务无法启动时无法删除服务。
使用 win-java-service-demo.exe install
命令安装服务,未出现错误信息即代表安装成功。如果提示错误信息,检查exe,jar,xml文件名是否完全一致,文件后缀名是否有打开显示,以及xml文件中的内容是否无误。
安装成功之后打开服务面板,可以看到已经安装成功的服务。
选中服务,右键属性打开,可以在启动类型选择是否开机自启,根据自己的需求来调整。关掉窗口,选中服务,右键启动即可运行springboot程序,状态显示 正在运行
则表示启动成功,程序在后台运行,无cmd窗口,实现所需效果。
访问接口,得到所需结果,证明程序可以正常运行。
服务更新和删除
更新程序只需要到服务列表右键停止就好了,然后把新的jar包放到目录下,再回到服务列表右键重新启动服务即可完成更新。需要注意的时更新的jar包名称必须与原名称保持一致,否则服务无法启动。
删除服务需要使用管理员身份打开cmd窗口,使用 sc delete win-java-service-demo
命令删除服务,win-java-service-demo 需要更换为自己的服务名称。
相关命令
win-java-service-demo.exe install #安装服务
sc start win-java-service-demo #启动服务
sc stop win-java-service-demo #停止服务
sc delete win-java-service-demo #删除服务