最近接触新的dubbo项目,项目初始时,测试环境的提供者服务发布较频繁,奈何公司又没有自动发布工具,遂自己在测试环境中搭建了Jenkins用于dubbo服务的发布。由于第一次使用,过程中也遇到了一些问题,记录与此
Q1、DubboShutdownHook 问题描述打包/停止原进程/拷贝/解压 过程一切正常。在执行启动脚本正常执行,可惜服务就是未正常启动,手动启动正常。翻查启动日志发现一段警告信息:
DubboShutdownHook WARN Unable to register Log4j shutdown hook because JVM is shutting down. Using SimpleLogger 解决初步判断是与Log4j相关,最终发现与项目中log4j2.xml相关。可移步:
可以log4j2.xml中添加shutdownHook=”disable” 完整内容如下
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="INFO" shutdownHook="disable"> ... </Configuration>bingo smile
Q2、Jenkins构建完成后杀死衍生进程 问题描述在解决完上一个问题后,没有出现那一段警告信息了,本以为可以偷懒了,谁知道dubbo服务依旧还是没有启动,这时候翻查日志,对比手动启动的日志无任何不同,陷入沉思。依旧是,正常执行脚本,日志也说明已经启动,可就是没有该进程,难道是被什么给杀掉了?
于是带着这个思路去搜索,Jenkins杀死进程发现了一条关键信息:
https://blog.csdn.net/u011138533/article/details/53941123
Jenkins默认会在Build结束后Kill掉所有的衍生进程
原来如此!!
在execute shell输入框中加入BUILD_ID=DONTKILLME
完整如下: