使用WinSW安装Windows服务
背景
配置Jenkins Windows节点时,需要手动执行命令启动服务,每次手动启动很麻烦,写成批处理文件,可以开机启动,但是会显示一个命令号窗口,且不能关闭,因此需要使用将命令行程序配置成程序用于后台运行,winsw工具可以吧命令行程序注册服务
下载
winsw下载地址
github上下载releases版本,我是Windows10电脑,下载了下图中WinSW-net461.exe
将下载的文件复制到需要安装服务的目录下,同时为了方便修改文件名为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服务查看到已安装的服务
启动类型设置为自动类型并点击启动,则windows服务即启动成功了,且每次重启电脑都会自动启动该服务。