Windows service wrapper

  引言

本文简要介绍了 Windows service wrapper 及其应用场景。主要介绍了使用方法,特别给出了当使用该工具注册为服务时,但不能启动,并报1067错误时的解决方法。

    正文

    Windows 服务包装器(Windows service wrapper),用于把.exe文件注册为windows服务。比如把Nginx.exe注册为windows服务,这样做的好处是,每次启动nginx时不用在命令行中输入命令,而且可以随windows系统启动而启动。不用担心服务器意外重启,服务挂掉。
    目前(2017 年 1 月 11 日)最新版本是2.0.1版。有两种选择,WinSW.NET2.exe安装在.netframework2.0中,WinSW.NET4.exe安装在.netframework4.0中,根据安装环境选择需要下载的文件。如下图
 
   
    下载完成后,需要通过配置文件进行配置,官方文档中关于XML Configuration File格式似乎不是最新的版本。因为我使用这种配置方法,虽然能够注册为服务,但是不能启动,会报代号为1067的错误。下图中红框中是不正确的xml文件格式,正确的为图1中sample-minimal.xml或sample-allOptions.xml中所示。
 
    
 
    使用方法
    以WinSW.NET4.exe为例,下载WinSW.NET4.exe,放至待包装的exe文件夹中,它可以自定义名字,比如这里我们命名为nginxservice.exe。下图中的.log文件都是启动后自动生成的。
 
   
    最重要的是,要在nginxservice.exe同目录中新建一个同名的xml文件,对其配置。如前所述,该文件的格式在sample-minimal.xml或sample-allOptions.xml中所示。
    这里所配置的是最简单的格式,更丰富的配置可以在sample-allOptions中查看。
 
   
    其中id和name不能与系统中其它服务的冲突。
    配置完成后,在命令行中进行安装,
    nginxservice.exe install
    卸载命令:nginxservice.exe uninstall
 
 
    安装后运行services.msc打开服务查看器,就能看到该服务
 
 
    安装成功,查看它的属性,就是我们在配置文件中的配置信息。
 
 
总结
Windows service Warpper 的使用场景为当需要服务器一直运行某个.exe文件,即使重新启动后,也不需要手动去启动该文件,这时需要把该文件注册为服务。
Windows service Warapper 下载后,无需安装,与配置文件放在同一目录中,并且需要相同的名字,使用过程主要是对 xml 文件进行配置。
 

备注

  同步更新到微信公众号中010888
         
 

posted on 2017-01-12 21:14  cosn  阅读(2982)  评论(0编辑  收藏  举报

导航