winsw实现windows服务

一、WinSW (Windows Service Wrapper) 简介与下载

  • 开源地址: https://github.com/winsw/winsw
  • 当前稳定版本: v2.11.0
  • 下载链接: https://github.com/winsw/winsw/releases/tag/v2.11.0
    • 根据服务器上安装的 .NET Framework 版本选择对应的可执行文件下载,例如 .NET Framework 4.x 环境下载 WinSW.NET4.exe
  • 配置文件示例:
    • sample-minimal.xml: 最小化配置示例。
    • sample-allOptions.xml: 包含所有可选配置参数的示例。

二、配置 WinSW

  1. 文件重命名与放置:

    • 将下载的 WinSW.NET4.exe (或其他版本) 重命名为具有明确含义的名称,例如 apiServer.exe(重要提示:此名称即为后续安装的 Windows 服务的可执行文件名,修改便于管理识别。)
    • 将配置文件 sample-minimal.xml 重命名为与可执行文件同名,但保留 .xml 后缀,例如 apiServer.xml
    • apiServer.exeapiServer.xml 两个文件放置到你的应用程序(如 JAR 文件或可执行文件)所在的目录中。
  2. 编辑配置文件 (apiServer.xml): 修改 apiServer.xml 文件,配置服务的基本信息。以下是一个核心配置示例:

    XML 复制代码
    <service>
      <id>apiServer</id>
      <name>apiServer</name>
      <description>API 服务程序</description>
      <startmode>Automatic</startmode>
      <executable>D:\WorkFolders\publish\MES.Server.WMS.WebAPI.exe</executable>
      <arguments></arguments>
    </service>
    • <id>: 安装 Windows 服务后的服务 ID。必须唯一。
    • <name>: 显示在 Windows 服务管理器中的服务名称。必须唯一。 通常与 <id> 保持一致即可。
    • <description>: 服务描述信息,可使用中文,作为备注说明。
    • <startmode>: 服务启动模式,Automatic 表示自动启动。
    • <executable>: 指定要运行的主命令或程序的全路径。例如,启动 Java 应用时,这里通常是 java.exe 的路径。
    • <arguments>: 传递给 <executable> 的命令参数。例如,启动 Spring Boot 应用时,这里可能是 -jar yourapp.jar 或其他 JVM 参数、类路径等。(请根据你的应用实际情况填写参数!)

三、安装与管理服务

  1. 管理员身份 打开命令提示符 (cmd)。

  2. 使用 cd 命令切换到 apiServer.exeapiServer.xml 所在的目录。

  3. 执行以下命令进行服务管理:

    命令 功能
    apiServer.exe install 安装服务
    apiServer.exe uninstall 删除服务
    apiServer.exe start 启动服务
    apiServer.exe stop 停止服务
    apiServer.exe restart 重启服务
    apiServer.exe status 查看服务状态
相关推荐
Ashley_Amanda14 小时前
Python 常见问题梳理
开发语言·windows·python
码农水水15 小时前
阿里Java面试被问:RocketMQ的消息轨迹追踪实现
java·开发语言·windows·算法·面试·rocketmq·java-rocketmq
WTCLLB15 小时前
cmd-set-ip
网络·windows
APIshop15 小时前
实战解析:1688详情api商品sku、主图数据
java·服务器·windows
云霄IT15 小时前
centos7安装防火墙为项目开放服务器端口
服务器·网络·windows
不染尘.15 小时前
Linux的基本管理及命令(上)
linux·windows·ssh
全栈小515 小时前
【PHP】如何将ThinkPHP 5部署到windows服务器的IIS里,和PHP版本又是一个怎么样的关系,三分钟教程搞定部署
服务器·windows·php
weixin_4624462315 小时前
【原创实践】Windows 和 Linux 下使用 Python 3.10 搭建 PaddleOCRVL 识别图片并100%还原表格
linux·windows·python·飞浆
人工智能训练16 小时前
UE5中如何解决角色网格体“掉下去”的问题
运维·服务器·windows·容器·ue5
唐宋元明清21881 天前
.NET 磁盘管理-技术方案选型
windows·c#·存储