winsw

C#源码 2025-08-17

Windows Service包装器在允许许可证中

winsw Wraps并管理任何应用程序作为Windows服务。

我们正在积极开发winsw 3。请参阅V2分支以获取以前的版本文档。

为什么?

请参阅项目清单。

支持的平台

winsw 3可以在Windows平台上使用.NET Framework 4.6.1或更高版本安装。对于没有.NET框架的系统,该项目基于.NET 7提供了本机64位和32位可执行文件。

可以根据要求添加更多可执行文件。

.NET框架系统要求
自Windows 10,版本1511和Windows Server 2016以来已预装。
由于Windows 7 SP1和Windows Server 2008 R2 SP1,因此可安装。

.NET 7系统要求
自Windows 10,版本1607,Windows Server(Core)2012 R2和Nano Server(版本1809)提供支持。

下载

GitHub版本上提供了最新版本和预发行winsw二进制文件。

替代来源:

  • CI构建可在Azure管道上使用。
  • nuget。 (2.x)
  • 由Jenkins Project托管的可执行文件的Maven包装。二进制文件可在这里提供。 (2.x)

开始

使用winsw作为全球工具

  1. 从分销中以winsw .exewinsw .zip为单位。
  2. 编写myApp.xml (有关更多详细信息,请参见XML配置文件规范和示例)。
  3. 运行winsw install myapp.xml [options]以安装服务。
  4. 运行winsw start myapp.xml以启动服务。
  5. 运行winsw status myapp.xml以查看您的服务是否启动并运行。

使用winsw作为捆绑工具

  1. 以分销中的winsw .exewinsw .zip为单位,然后将.exe重命名为您的口味(例如myapp.exe )。
  2. 编写myApp.xml (有关更多详细信息,请参见XML配置文件规范和示例)。
  3. 并排放置这两个文件,因为这是winsw发现其共同相关配置的方式。
  4. 运行myapp.exe install [options]以安装服务。
  5. 运行myapp.exe start启动服务。

示例配置文件

您编写定义服务的配置文件。下面的示例是詹金斯项目中使用的原始示例:

< service >
  < id >jenkins</ id >
  < name >Jenkins</ name >
  < description >This service runs Jenkins continuous integration system.</ description >
  < env name = " JENKINS_HOME " value = " %BASE% " />
  < executable >java</ executable >
  < arguments >-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</ arguments >
  < log mode = " roll " ></ log >
</ service >

配置文件的完整规范可在此处找到。您可以在这里找到更多样品。

用法

winsw由XML配置文件管理。

您重命名的winsw .EXE Binary还接受以下命令:

命令 描述
安装 安装服务。
卸载 卸载服务。
开始 开始服务。
停止 停止服务。
重新启动 停止,然后开始服务。
地位 检查服务的状态。
刷新 刷新服务属性而无需重新安装。
定制 自定义包装器可执行文件。
开发 实验命令。

实验命令:

命令 描述
开发PS 绘制与服务关联的过程树。
开发杀死 如果服务已经停止响应,则终止该服务。
开发列表 列出由当前可执行文件管理的服务。

大多数命令要求管理员特权执行。 winsw将提示在非高级会议中进行UAC。

文档

  • 迁移到winsw 3.x
  • 配置:
    • XML配置文件
    • 记录和错误报告
    • 扩展
  • 用例:
    • 自我激烈的服务
    • 延期文件操作

贡献

欢迎捐款!有关更多信息,请参见贡献指南。

执照

winsw已获得MIT许可证的许可。

下载源码

通过命令行克隆项目:

git clone https://github.com/winsw/winsw.git