Windows service wrapper 初探
Posted 第一滴水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows service wrapper 初探相关的知识,希望对你有一定的参考价值。
引言
本文简要介绍了 Windows service wrapper 及其应用场景。主要介绍了使用方法,特别给出了当使用该工具注册为服务时,但不能启动,并报1067错误时的解决方法。
正文
Windows 服务包装器(Windows service wrapper),用于把.exe文件注册为windows服务。比如把nginx.exe注册为windows服务,这样做的好处是,每次启动nginx时不用在命令行中输入命令,而且可以随windows系统启动而启动。不用担心服务器意外重启,服务挂掉。
github地址:https://github.com/kohsuke/winsw
目前(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
以上是关于Windows service wrapper 初探的主要内容,如果未能解决你的问题,请参考以下文章
使用Windows Service Wrapper快速创建一个Windows Service 如nginx
Java Service Wrapper 使用(windows)
详解Maven项目利用java service wrapper将Java程序生成Windows服务