• 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

    官方仓库地址

    地址

  • 相关阅读:
    如何kill一条TCP连接?
    微信支付业务
    论坛介绍|COSCon'23 开源百宝箱(T)
    c++香甜的黄油(acwing)
    c++文件操作
    听GPT 讲Rust源代码--library/std(16)
    vulfocus——thinkphp3.2.x代码执行
    信息收集工具 -- weblive
    【PlasticSCM Could Edition】新版本云托管浅试2
    内核初始化
  • 原文地址:https://blog.csdn.net/sumtre_w/article/details/126949467