Windows:服务注册

目录


一、概述

在项目开发完成线上之后需要启动程序,如果每一次都手动启动太麻烦,如果放到开始菜单里面,服务器重启之后还需要在手动登录一下,程序才会启动,为了解决这一问题,推荐使用WinSW来注册服务。

WinSW(Windows Service Wrapper)是微软推荐的开源工具(GitHub 地址:https://github.com/winsw/winsw),本质是一个轻量级的可执行程序(exe 文件),能把任意可执行程序 / 脚本(比如 Java JAR、Nginx、Python 脚本、Redis 等)封装成标准的 Windows 系统服务。

二、如何使用

WinSW 的使用逻辑对所有程序都通用,核心是 "1 个 exe + 1 个 XML 配置文件",步骤如下:

  • 准备工具和程序
  • 整理文件结构
  • 编写 XML 配置文件(核心)
xml 复制代码
<service>
  <!-- 1. 服务基础信息(唯一标识,不能重复) -->
  <id>MyServiceID</id>                <!-- 服务内部ID(无空格/特殊字符) -->
  <name>我的自定义服务</name>          <!-- 服务列表中显示的名称 -->
  <description>后台运行的自定义服务</description>

  <!-- 2. 程序启动配置(核心:改这两个参数适配你的程序) -->
  <executable>程序路径</executable>    <!-- 要运行的程序路径(如java、nginx.exe、python.exe) -->
  <arguments>启动参数</arguments>      <!-- 程序的启动参数(如-jar xxx.jar、-c xxx.conf) -->

  <!-- 4. 服务运行规则 -->
  <startmode>Automatic</startmode>     <!-- 启动模式:Automatic(开机自启)/ Manual(手动) -->
  <onfailure>Restart</onfailure>       <!-- 程序崩溃时自动重启 -->
  <restartdelay>3000</restartdelay>    <!-- 重启延迟3秒 -->

  <!-- 5. 日志配置(排查问题必备) -->
  <logpath>%BASE%\log</logpath>			 <!-- 日志目录(自动创建) -->
  <logmode>rotate</logmode>              <!-- 日志滚动(避免文件过大) -->
</service>

注意:这里的exe、xml文件名要跟启动程序的名字一致

  • 注册服务
java 复制代码
MyService.exe install
  • 启动服务
java 复制代码
MyService.exe start
  • 停止服务
java 复制代码
MyService.exe stop
  • 重启服务
java 复制代码
MyService.exe restart
  • 卸载服务(先停止)
java 复制代码
MyService.exe uninstall
  • 查看状态
java 复制代码
MyService.exe status

三、Java注册服务

  • 编写XML配置文件
xml 复制代码
<service>
     <id>xxx</id>
     <name>xxx</name>
     <description>xxx</description>
     
     <env name="JAVA_HOME" value="%JAVA_HOME%"/>
     <executable>java</executable>
     <arguments>-jar "C:\Users\Administrator\Desktop\123\xxx.jar"</arguments>
    
     <!-- 开机启动 -->
     <startmode>Automatic</startmode>
     <onfailure>Restart</onfailure>       <!-- 程序崩溃时自动重启 -->
     <restartdelay>3000</restartdelay>    <!-- 重启延迟3秒 -->

     
     <!-- 日志配置 -->
     <logpath>%BASE%\log</logpath>
     <logmode>rotate</logmode>
 </service>
相关推荐
开开心心就好1 天前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
獨枭1 天前
PyCharm 跑通 SAM 全流程实战
windows
仙剑魔尊重楼1 天前
音乐制作电子软件FL Studio2025.2.4.5242中文版新功能介绍
windows·音频·录屏·音乐·fl studio
PHP小志1 天前
Windows 服务器怎么修改密码和用户名?账户被系统锁定如何解锁
windows
专注VB编程开发20年1 天前
vb.net datatable新增数据时改用数组缓存
java·linux·windows
仙剑魔尊重楼1 天前
专业音乐制作软件fl Studio 2025.2.4.5242中文版新功能
windows·音乐·fl studio
rjc_lihui1 天前
Windows 运程共享linux系统的方法
windows
失忆爆表症1 天前
01_项目搭建指南:从零开始的 Windows 开发环境配置
windows·postgresql·fastapi·milvus
阿昭L1 天前
C++异常处理机制反汇编(三):32位下的异常结构分析
c++·windows·逆向工程
梦帮科技2 天前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json