一、将windows bat/cmd脚本创建为windows服务
1、下载winsw工具
https://gitee.com/colinisg/winsw/releases/download/v2.12.0/WinSW-2.12.0-x64.exe
2、创建服务配置xml文件
①将下载的工具WinSW-2.12.0-x64.exe放到脚本目录位置,并修改名称,这里的名称是要安装的服务的名称(此处以nacos为例:nacos-server.exe)
②新建一个.txt文件修改后缀名为.xml
③打开.xml文件编辑以下内容
<?xml version="1.0" encoding="UTF-8" ?>
<service>
<!-- 唯一服务ID -->
<id>nacos</id>
<!-- 显示服务的名称 -->
<name>Nacos Service</name>
<!-- 服务描述 -->
<description>Nacos服务</description>
<!-- 日志路径 -->
<logpath>D:\devtools\nacos\logs\</logpath>
<!-- 日志模式 -->
<logmode>roll</logmode>
<!-- 可执行文件的命令 -->
<executable>D:\devtools\nacos\bin\t-startup.bat</executable>
<!-- 停止可执行文件的命令 -->
<stopexecutable>D:\devtools\nacos\bin\shutdown.cmd</stopexecutable>
</service>
3、运行工具安装windows服务
// 以nacos为例
nacos-service.exe install
4、启动服务
# 方法一:在nacos-service.exe 目录执行
nacos-server.exe start
# 方法二:打开cmd终端
net start nacos
5、常见问题
①启动服务时,提示程序运行中断、系统错误等问题。
原因分析:在xml配置的可执行文件命令里面执行的脚步,查看脚本中是否引用其他脚本,如果设置服务的脚步nacos-service.exe与这些引用脚本不在同一个目录,那么执行时,会因为找不到脚本而报错,导致启动失败。
解决方法:将nacos-service.exe与引用的运行命令,放在同一个目录下。
二、将jar安装为windows服务
1、步骤与上面一样,只是.xml文件有些区别
<service>
<!-- 指定在Windows系统内部使用的识别服务的ID。在系统中安装的所有服务中,这必须是唯一的,它应该完全由字母数字字符组成 -->
<id>server-id</id>
<!-- 服务的简短名称,它可以包含空格和其他字符。尽量简短,就像“id”一样,在系统的所有服务名称中,也要保持唯一 -->
<name>server-name</name>
<!-- 该服务可读描述。当选中该服务时,它将显示在Windows服务管理器中 -->
<description>This runs Spring Boot as a Service.</description>
<!-- 该元素指定要启动的可执行文件 -->
<env name="HOME" value="%BASE%"/>
<executable>java</executable>
<arguments>-Xmx256m -Dfile.encoding=UTF-8 -jar "%BASE%\你的jar包名称.jar"</arguments>
<!-- 日志输出位置 -->
<logpath>%BASE%\logs</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
</service>