SpringBoot Windows 自启动 - 通过 Windows Service 服务实现
SpringBoot 在Windows运行时,有个黑窗体,容易被不小心选中或关闭,或者服务器重启后,不能自动运行,注册为 Windows Service服务 可实现 SpringBoot 项目在Windows 中随系统自启动。也不用担心被关闭
下载 WinSW
https://github.com/winsw/winsw/releases
创建运行目录
创建目录,将有关文件放入目录下,
将 WinSW-x64.exe 重命名为 自己的服务名,如 his-service.exe
如下图:
his-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<service>
<!-- 服务ID Windows 服务唯一标识 -->
<id>his-service</id>
<!-- 服务名称 -->
<name>his-service</name>
<!-- 服务描述 -->
<description>HIS 接口同步服务</description>
<!-- jar包运行参数,如果没设JAVA_HOME,指定运行程序的jdk位置 C:\Program Files\Java\jdk1.8.0_251\bin\java.exe-->
<executable>java</executable>
<!-- -jar之后是jar包名称 -->
<arguments> -Xms1024m -Xmx2048m -Dfile.encoding=utf-8 -Dloader.path=D:\HisApi-lib -jar his-service.jar --server.port=22586 --spring.profiles.active=dev </arguments>
<!-- 日志配置 -->
<logpath>D:\HIS\logs</logpath>
<!-- 日志模式,默认为append追加模型,rotate为旋转模式-->
<logmode>rotate</logmode>
</service>
- executable:启动可执行文件的全路径,如果配置环境变量,则可以简写,所有这里填写Java
- arguments:命令执行的参数
- logpath:配置日志路径
- logmode:日志输出模式,默认为append,官方文档
- append:(追加模式,其特点是将日志文件全部输出在一个文件中,这个文件可能会越来越大。
- rotate:(旋转模式,推荐)当日志文件大小达到10兆(默认值),winsw会将日志重新输出到另外一份日志文件,最多保留8个(默认值)。
- reset:(重置模式)每次重启服务都会重置日志文件。
- none:(忽略模式)几乎不会生成日志文件。
安装服务
CMD(管理员模式)
D:\HIS>his-service.exe install
D:\HIS>services.msc
安装成功后到 服务中,找到对应的服务,右击启动
更新服务
- 停止服务
- 替换目录下的jar文件
- 启动服务
删除服务
D:\HIS>sc delete his-service
注意
his-service 替换成自己的应用服务名
同类产品有:NSSM 使用介绍:
NSSM 将.NetCore 做成 Windows 服务 - JAVA 同理、
NSSM 将jar包安装为windows服务-bat启动方式
感谢,@yi念之间 提供 NSSM 信息