使用WinSW安装Windows服务

背景

配置Jenkins Windows节点时,需要手动执行命令启动服务,每次手动启动很麻烦,写成批处理文件,可以开机启动,但是会显示一个命令号窗口,且不能关闭,因此需要使用将命令行程序配置成程序用于后台运行,winsw工具可以吧命令行程序注册服务

下载

winsw下载地址
github上下载releases版本,我是Windows10电脑,下载了下图中WinSW-net461.exe
WX20220509-145058.png
将下载的文件复制到需要安装服务的目录下,同时为了方便修改文件名为winsw.exe

配置文件winsw.xml

文件官网例子如下

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

相关内容修改如下,我这里是添加jenkins节点agent服务,为了不用每次都需要手动启动,且会有cmd窗口,配置服务如下

<service>
  <id>jenkins_agent</id>
  <name>jenkins_agent</name>
  <description>jenkins节点agent服务</description>
  <env name="JENKINS_HOME" value="%BASE%"/>
  <executable>java</executable>
  <arguments>-jar agent.jar -jnlpUrl https://jenkins.zhaolog.com/computer/win10/jenkins-agent.jnlp -secret 271e6f707329694fdc7af5aa7bbc2c13d80260023b113e539831351370906a0e -workDir "D:\Profile"</arguments>
  <logmode>reset</logmode>
</service>

注册

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

C:\Windows\system32>d:
D:\>cd jenkins/agent
D:\jenkins\agent>winsw.exe install

查看

然后打开windows服务查看到已安装的服务
6921b920e8364a50c8dacc7e51d74afe.png
启动类型设置为自动类型并点击启动,则windows服务即启动成功了,且每次重启电脑都会自动启动该服务。

最后修改:2022 年 05 月 09 日
如果觉得我的文章对你有用,请随意赞赏