背景
配置Jenkins Windows节点时,需要手动执行命令启动服务,每次手动启动很麻烦,写成批处理文件放在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp目录下,可以开机启动,但是会显示一个命令号窗口,且不能关闭,因此需要使用将命令行程序配置成程序用于后台运行,winsw工具可以把命令行程序注册为服务方便运行
下载
地址:https://github.com/winsw/winsw/releases
将下载的文件复制到需要安装服务的目录下,同时为了方便修改文件名为winsw.exe
配置文件winsw.xml
此处注意:文件名和配置文件的名字除后缀之外,其他要相同
文件官网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>agent服务</description>
<env name="JENKINS_HOME" value="%BASE%"/>
<executable>java</executable>
<arguments>-jar XXXXXXX"</arguments>
<logmode>reset</logmode>
</service>
注册
编写好配置文件之后,记得把配置文件和可执行文件放在一起,这样winsw才能正确识别配置文件。然后我们使用管理员身份打开cmd窗口,cd进入到winsw所在目录中然后输入下面的命令,如果返回值为0,说明已将程序注册为服务。
winsw.exe install
查看
然后打开windows服务查看到已安装的服务
卸载
如果后续需要删除服务,同样在winsw所在目录中cmd,输入下面的命令进行删除卸载
winsw.exe uninstall