WinSW配置Java应用为Windows系统服务

WinSW介绍

WinSW的全称是Windows Service Wrapper,可以将应用打包成Windows服务的方式运行。
WinSW 3 可在安装了 .NET Framework 4.6.1 或更高版本的 Windows 平台上运行。 对于没有 .NET Framework 的系统,该项目提供基于 .NET 7 的本地 64 位和 32 位可执行文件。

  1. 项目地址:https://github.com/winsw/winsw
  2. 最新发行版下载地址:https://github.com/winsw/winsw/releases
  3. 注:请选择 Latest 版本下载
  4. 需要下载的文件
    • 配置文件:二选一
      • 全部配置:sample-allOptions.xml
      • 精简配置:sample-minimal.xml
    • 执行文件:根据操作系统位数,一般都是x64了
      • WinSW-x64.exe

安装

  1. 一组WinSW(一个配置+一个执行文件)只能提供一个应用的服务能力。
  2. 将下载好的配置文件和可执行文件放置到jar包同级目录下。
  3. 将配置文件和可执行文件改名和jar包同名。(非必要但是建议)
  4. 使用文本编辑器编辑配置文件(.xml),详细配置如下。

配置

所有的配置内容需要在<service></service>标签内进行配置,修改的配置会在下一次服务启动时生效

  1. 核心配置:
    1. 系统服务ID:<id>
      标签内配置的字符串需要是系统服务中的唯一值
    2. 系统服务名称:<name>
      显示在系统服务管理页面的服务名称
    3. 服务备注:<description>
      系统服务管理中对此服务的备注
    4. 可执行应用:<executable>
      此处配置是应用的执行文件,比如java服务就是配置java即可(前提是配了环境变量)
    5. 启动参数:<arguments>
      此处配置应用的启动参数,比如 -jar D:\xxx.jar
    6. 服务启动模式:<startmode>
      服务在系统启动时自启还是手动启动,一般设置自启:Automatic,前提是依赖服务都配置了,比如mysql、redis之类的
    7. WinSW日志模式:<log mode="none"/>
      这里设置的是不打印日志,因为如果不设置的话,WinSW会把控制台日志一股脑全到打印到一个叫做 服务名.log 的日志文件中
    8. WinSW日志位置:<logpath>
      这里的日志是WinSW的服务日志,不是应用的内部日志,随便设置一个位置即可,不设置的话会生成在运行同目录下
  2. 其他配置:
    详见:https://github.com/winsw/winsw/blob/v3/docs/xml-config-file.md
  3. 日志更多参数:
    详见:https://github.com/winsw/winsw/blob/v3/docs/logging-and-error-reporting.md
  4. 示例
    <service>
      <id>TEST-Server</id>
      <name>测试服务</name>
      <description>这是一个测试服务</description>
      <executable>java</executable>
      <arguments>-Dfile.encoding=utf-8 -jar D:\test.jar</arguments> 
      <startmode>Automatic</startmode>
      <log mode="none"/>
      <logpath>D:\test\logs</logpath>
    </service>
    

使用

  1. 通过可执行文件对服务进行安装、启动、停止、卸载
  2. 命令方式:xxx.exe <Command>
  3. Command
    • 安装服务:install
    • 启动服务:start
    • 停止服务:stop
    • 重启服务:restart
    • 服务状态:status
    • 卸载服务:uninstall
  4. 进阶使用方式详见:https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md
posted @ 2024-07-12 13:58  苍凉温暖  阅读(338)  评论(0编辑  收藏  举报