波斯码BOSSMA Information Technology

winsw注册可执行文件为Windows服务

发布时间:2019年10月21日 / 分类:SERVER / 1,094 次浏览 / 评论

注册为Windows服务的程序可以自动启动,比较方便,当然还有其它好处,这里就不多说了。使用Visual Studio可以很方便的创建Windows服务程序,不过很多情况下不想搞的这么麻烦,或者不想去学习这个,比如写了一个Java控制台的程序,又或者用Python写了段脚本,有没有比较简单的方式呢。今天就介绍一个小工具:winsw。

这个工具在github上是开源的,可以去找找或者点击这里直达。下面就直接说使用步骤了。

1、安装依赖

这个工具依赖.net framework,安装.net 4.0版本就可以了,点击下载安装:https://www.microsoft.com/en-US/Download/confirmation.aspx?id=17718

2、下载winsw并放到程序根目录

下载地址:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/

当前的最新版本是2.3.0,下载后改个比较短的名字,比如就叫winsw.exe,然后放到要注册Windows服务的程序根目录。

3、编写配置文件

这里给出一个Java的例子:

<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>

可以设置服务的Id、名称、描述、程序的可执行文件、参数、环境变量、日志记录模式等等。还可以设置启动模式、延迟启动、服务优先级、服务依赖、服务停止时的处理、服务失败时的处理等等,根据需要选择,更多参数说明请看官方文档:https://github.com/kohsuke/winsw/blob/master/doc/xmlConfigFile.md

注意这个配置文件的名字需要和上边下载后修改的文件名一致,比如这里为:winsw.xml。

4、安装服务

启动Windows命令行,进入程序目录,执行:winsw install

安装成功后会有一行成功提示。

如果要卸载服务也很简单,执行命令:winsw.install

安装服务完毕后,服务不会马上启动,需要自己到服务管理工具中启动服务,当然系统重启后服务是可以自动启动的。

如果做的更好一些,还可以写一个批处理文件来安装和卸载服务,不用再手动执行命令行。

5、其它问题

整体来说还是比较简单的,不过需要注意程序的输入输出会被winsw重定向,如果程序中有对输入输出的处理,还需多测试下程序的行为。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯码,原文地址《winsw注册可执行文件为Windows服务

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】