使用jenkins和maven配合编译成功后。 进行部署,部署完成后,需要重启tomcat使新编译的代码生效。
所以就需要在编译后,执行一些shell命令,如图:
![](https://img.haomeiwen.com/i2054227/5d9180b89507e3aa.png)
这时候执行tomcat的启动命令会执行失败,因为Jenkins会在构建完成后使用processTreeKiller杀掉了所有子进程,而且这是Jenkins的默认行为。Jenkins的做法非常合理。当一次build异常结束,或被人终止时,必然需要结束所有这次build启动的子进程。
可以通过更改BUILD_ID的值来防止子进程被杀死;做法是写一个tomcat重启的脚本, 脚本内修改BUILD_ID。
![](https://img.haomeiwen.com/i2054227/ecbc8a4f8c0b03aa.png)
脚本内容如下:
#!/bin/bash
export BUILD_ID=dontkillme #随便写
sh tomcat_path/bin/shutdown.sh
sleep 3s
sh tomcat_path/bin/startup.sh
这样,就可以通过Jenkins来启动tomcat了。
网友评论