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>
相关推荐
桑榆4164 小时前
双系统(Windows + Ubuntu)安装流程
linux·windows·ubuntu
走,带你去玩13 小时前
windows电脑 trae对接lanhu-mcp
windows
戒了,最后一次18 小时前
Windows 安装 FFmpeg 完整教程(附环境变量配置 + 常用命令示例)
windows·ffmpeg
liulilittle21 小时前
DeepSeek Harness 自定义模型提供商配置
前端·javascript·人工智能·windows·llm·deepseek·harness
fruge1 天前
Windows部署MiGPT GUI:小爱音箱接入大模型、TTS与自定义人设
windows
源码学社1 天前
DeerFlow Windows 本地运行教程(uv)
windows·uv·沙箱·deerflow·超级智能体·deerflow安装
Sombra_Olivia1 天前
复现Windows Server服务RPC请求缓冲区溢出漏洞(MS08067)
网络·windows·安全·web安全·网络安全·渗透测试·vulhub
-天道酬勤-1 天前
查看Windows电脑开机时间
windows·电脑
该用户可能存在1 天前
【Win11优化】StartAllBack实战:解决任务栏合并、右键折叠等痛点
windows·性能优化·win11·windows 11·startallback·任务栏·开始菜单
特立独行的猫a1 天前
Windows安装Rust环境 Clang替代GCC MinGW环境LLVM工具链(详细教程)
开发语言·windows·rust·mingw·环境搭建·llvm