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>
相关推荐
zandy10111 小时前
体验家 XMPlus 问卷答题体验优化与完成率提升引擎:从交互设计到行为心理学的工程化实践
windows·microsoft·交互
独隅2 小时前
DevEco Code 在 Windows/MacOS 双系统上的完整使用指南
ide·人工智能·windows·macos·华为·harmonyos
寒水馨3 小时前
Windows下载、安装electron-v43.2.0(附安装包electron-v43.2.0-win32-x64.zip)
javascript·windows·typescript·electron·跨平台·桌面应用·chromium
x10n93 小时前
常用 Windows 数据恢复工具横向汇总|误删文件、分区损坏自救软件清单
windows·数据恢复·数据恢复工具
geovindu4 小时前
java: Backtracking Algorithm
java·开发语言·windows·后端·算法·回溯算法
西安景驰电子6 小时前
PTP IEEE1588 时钟服务器详解
运维·服务器·网络·数据库·windows·安全
糖果店的幽灵20 小时前
langgraph的 MessagesState 解读
java·开发语言·人工智能·windows·langgraph
骑上单车去旅行21 小时前
MD5校验对比脚本
linux·服务器·windows
FreeBuf_1 天前
Windows NT OS内核提权漏洞PoC已公开
windows
雲帝1 天前
Windows虚拟机UDP大包分片排障
windows·网络协议·udp