近段时间,公司项目采用java -jar 的方式直接启动项目,在调试Jenkins环境时,发现无论什么方式,都无法启动对应进程,查阅各种资料,说是因为Jenkins在构建完成后,为了不造成环境问题,会把衍生进程给自动杀死。于是查到有几种解决办法:
1、重设环境变量 BUILD_ID
BUILD_ID=dontKillMe
无效
2、sh脚本中
export BUILD_ID=dontKillMe
无效
3、临时改变 BUILD_ID值
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe
sh /home/cloud/exec/test.sh
#改回原来的BUILD_ID值
BUILD_ID=$OLD_BUILD_ID
echo $BUILD_ID
无效
4、通过Jenkins的启动参数禁用杀死衍生进程的特性
tomcat部署时修改 catalina.sh 脚本上加上上JAVA_OPTS="$JAVA_OPTS -Dhudson.util.ProcessTree.disable=true";重启tomcat
无效
没错这上面的都通通无效
请教大佬后得知,这根本不是自动杀死衍生进程的问题
而是环境变量的问题
没想到吧
先说解决办法:
在构建后操作,脚本最前面加上
source /etc/profile
如同这样

本文探讨了在Jenkins环境中启动Java项目的挑战,详细记录了尝试多种方法避免Jenkins自动终止衍生进程的努力,最终揭示了解决方案并非在于Jenkins配置,而是正确设置环境变量,特别是加载/etc/profile文件的方法。

1300

被折叠的 条评论
为什么被折叠?



