WINDOWS环境将SPRINGBOOT程序注册成为服务实现开机自启和后台运行

由于通过java -jar方式启动的springboot程序需要有一个cmd窗口,无法实现Linux上nohup命令的后台运行效果。所以需要将开发的springboot程序注册成windows服务,实现开机自启和无窗口运行。

下载WINSW.NET4.EXE

下载地址:https://github.com/kohsuke/winsw/releases

此文件下载完成之后需要与程序放在同级目录,并修改名称为 程序名.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    #删除服务

posted @ 2022-08-24 10:35  暗夜苹果  阅读(1552)  评论(0编辑  收藏  举报