• Windows Service Wrapper 一个将可执行文件封装为windows服务的工具


    WinSW是一个可执行二进制文件,可用于包装和管理作为Windows服务的自定义进程。下载安装包后,您可以将 WinSW.exe 重命名为任何名称,例如 MyService.exe 。

    支持的平台

    WinSW提供了.NET Framework 2.0、4.0和4.6.1的可执行文件。它可以在安装了这些版本的.NET Framework的Windows平台上运行。对于没有.NET Framework的系统,该项目提供了基于.NET Core 3.1的本机64位和32位可执行文件。

    下载

    可选下载地址:

    CI builds are available on Azure Pipelines.
    NuGet. (2.x)

    用法

    WinSW通过配置文件(提供xml和yaml两种格式)的方式进行管理: Main XML configuration file 和 Main YAML configuration file .

    配置完成后,可配合以下命令进行windows服务的安装、启动、停止等操作:

    install 将服务安装到Windows Service Controller.
    uninstall 卸载服务和上面相反的操作。
    start 启动服务,该服务必须已经安装。
    stop 停止服务。
    stopwait 停止服务并等待,直到它实际上停止为止。
    restart 重新启动服务。如果该服务当前未运行,则此命令的作用类似于start。
    status 检查服务的当前状态。
    大多数命令都需要管理员权限才能执行。

    执行格式: MyService.exe install

    XML配置格式

    <service>
      <id>jenkinsid>
      <name>Jenkinsname>
      <description>This service runs Jenkins continuous integration system.description>
      <env name="JENKINS_HOME" value="%BASE%"/>
      <executable>javaexecutable>
      <arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080arguments>
      <log mode="roll">log>
    service>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    nginx示例:

    <service>
      <id>nginxid>
      <name>nginxname>
      <description>nginxdescription>
      <executable>D:\WebServer\nginx-1.12.2\nginx.exeexecutable>
      <logpath>D:\WebServer\nginx-1.12.2\logpath>
      <logmode>rolllogmode>
      <depend>depend>
      <startargument>-pstartargument>
      <startargument>D:\WebServer\nginx-1.12.2\startargument>
      <stopexecutable>D:\WebServer\nginx-1.12.2\nginx.exestopexecutable>
      <stopargument>-pstopargument>
      <stopargument>D:\WebServer\nginx-1.12.2\stopargument>
      <stopargument>-sstopargument>
      <stopargument>stopstopargument>
    service>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    配置2:

    <service>
    	<id>nginxSzGasid>
    	<name>nginxSzGasname>
    	<description>XXX项目description>
    	<logpath>C:\ShenZhenGasProject\nginxlogpath>
    	<logmode>rolllogmode>
    	<depend>depend>
    	<executable>C:\gas\nginx\nginx.exeexecutable>
    	<stopexecutable>C:\gas\nginx\nginx.exe -s stopstopexecutable>
    service>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    备注: WinSW.exe 和对应的xml配置文件进行重命名时采用相同的文件名。如: myserver.exe myserver.xml

    官方仓库地址

    地址

  • 相关阅读:
    【废话文学】各种概念混搭
    Spark基础【两个小案例、Yarn模式下任务执行源码】
    【函数式编程实战】(八) 如何将你的代码重构
    STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据
    基于Google大型分布式系统的网格化实战
    超大模型工程化实践打磨,百度智能云发布云原生AI 2.0方案
    EXSI-NFS实验
    Mysql 索引与事务
    2022-9-4QT实现迷你闹铃(定时播报指定内容)
    【操作系统 | Linux】终端切换与帮助命令
  • 原文地址:https://blog.csdn.net/sumtre_w/article/details/126949467