SpringBoot Windows 自启动 - 通过 Windows Service 服务实现

Windows Service 服务中,不能访问挂载目录(网络映射盘)

SpringBoot 在Windows运行时,有个黑窗体,容易被不小心选中或关闭,或者服务器重启后,不能自动运行,注册为 Windows Service服务 可实现 SpringBoot 项目在Windows 中随系统自启动。也不用担心被关闭

下载 WinSW

https://github.com/winsw/winsw/releases

image

创建运行目录

创建目录,将有关文件放入目录下,
将 WinSW-x64.exe 重命名为 自己的服务名,如 his-service.exe
如下图:
image
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 安装成功后到 服务中,找到对应的服务,右击启动
image

更新服务

  • 停止服务
  • 替换目录下的jar文件
  • 启动服务

删除服务

D:\HIS>sc delete his-service

注意

his-service 替换成自己的应用服务名


同类产品有:NSSM 使用介绍:
NSSM 将.NetCore 做成 Windows 服务 - JAVA 同理
NSSM 将jar包安装为windows服务-bat启动方式

感谢,@yi念之间 提供 NSSM 信息

posted @ 2023-03-27 08:49  VipSoft  阅读(1376)  评论(2编辑  收藏  举报