持续集成 jenkins 启动远端 tomcat 服务失败,控制台输出成功,但远端查看进程并未启动,各位有什么好的见解吗

匿名用户 · 2020年05月10日 · 最后由 匿名用户 回复于 2020年05月10日 · 1900 次阅读

node('Centos'){
stage('构建'){
checkout scm
}
stage('部署'){
//sh 'cd /root/workspace/ContinuousIntegration/ && sh ./deploy.sh'
sh '''
export EXEC=/home/wgz/usr/apache-tomcat-7/bin/catalina.sh
$EXEC stop
sleep 5
JENKINS_NODE_COOKIE=dontKillMe nohup $EXEC start &
sleep 30
'''
}
}

附言 1  ·  2020年05月10日

问题已经解决,观察 Jenkins 自身 Tomcat 的日志,发现有报错:端口被占用,Jenkins 的 Tomcat 又被启动了一次,结合 Jenkins 控制台输出,感觉脚本中./startup.sh 启动的不是项目 Tomcat,而是 Jenkins 自身 Tomcat,于是修改项目 Tomcat 的 catalina.sh, 重新设置了 Tomcat 启动需要的变量。参考此贴可解决问题https://blog.csdn.net/u012475575/article/details/82907617

共收到 6 条回复 时间 点赞

打印下 tomcat 的启动日志

这个问题如果你真的有去研究过 jenkins 启动 tomcat 的机制你就知道了,这是 jenkins 的特性导致的,拜托先百度一下.。。
tomcat 的 catalina.sh 里面加一个参数就好了

恒温 回复


日志并有没可用信息

jacksboy 回复


麻烦您说的详细点,是这个参数吗,之前已经加过,并无效果,谢谢

看到历史已经有同学问过类似问题,可以看下是否可以参考?

https://testerhome.com/topics/18304

个人理解并不是没有启动,而是 jenkins 执行完 job 释放资源时,连带把你启动的 tomcat 集成也一起杀掉(释放)了。

陈恒捷 回复

资源被杀死是一定的,我在找解决的办法,网上的办法都试过,没有解决我的问题

匿名用户 关闭了讨论 05月10日 23:47
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册