用winsw让任何Windows程序都能运行为服务

安装使用

(1)下载winswexe文件

       从github上进行下载,下载地址:

https://github.com/kohsuke/winsw/releases

我这里下载的是最新版本winsw-v2.2.0,这里有两个要下载的文件:其一winsw.exe文件; 其二是xml配置文件。我下载的是最新版本的WinSW.NET4.exe和sample-minimal.xml。

(1)sample-minimal.xml:配置window服务信息、可执行程序、参数。

(2)WinSW.NET4.exe:是安装/卸载windows服务的exe文件。

题外话:下载地址的WinSW.NET4和WinSW.NET2是什么鬼?

(1)NET是window下的netframework的简称。

(2).netframework2.0选择 WinSW.NET2.exe;.netframework4.0  选择WinSW.NET4.exe。

(3)怎么查看自己系统上的netframework的最高版本号呐?特别简单,直接打开【我的电脑】- 在地址栏输入【%systemroot%\Microsoft.Net\Framework】就可以看到多个版本,当中的最高版本就是我们目前正在使用的.net Framework的版本号。

编写配置文件(修改winsw.exe名为jenkins.exe)

我们需要编写一个和程序同名的jenkins.XML文件作为winsw的配置文件。文件大体上长这样,这是官网的例子。

    <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>
      <logmode>rotate</logmode>
    </service>

  

看到XML的标签名,我想大家也能猜到这些参数是干嘛的,所以我就不介绍了。下面是我的一个配置文件例子。

<service>
    <id>kcp</id>
    <name>kcp</name>
    <description>这个服务用来将ss使用kcp协议加速</description>
    <executable>client_windows_amd64</executable>
    <arguments>-c kcp-config.json</arguments>
    <logmode>reset</logmode>
</service>

   

注册服务

编写好配置文件之后,记得把配置文件和可执行文件放在一起,这样winsw才能正确识别配置文件。然后我们打开一个管理员权限的命令提示符或Powershell窗口,然后输入下面的命令,如果返回值为0,说明已将程序注册为服务。

jenkins.exe install

然后打开Windows的服务,我们可以看到这下已经出现了注册的服务,我们可以像一般服务那样开启、关闭它。

服务

如果不再需要这个服务,使用jenkins uninstall即可卸载服务。当然还有诸如start、stop这样的命令启动和关闭服务。

发布了67 篇原创文章 · 获赞 9 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/robinhunan/article/details/90510544