jenkins 解决构建成功后进程消失的问题

林纳斯脱袜子_官方人员 发布于 2018/09/25 20:43
阅读 797
收藏 1

jenkins 布署环境:jenkins.war + tomcat

springboot maven项目。打成jar包之后,调用服务器端的a.sh脚本,将jar包归结至一处,关闭正在运行的服务,然后调用专门的b.sh start srvname这样进行启动。

在服务器 a.sh 是完全可以将服务启动完成的。

使用jenkins构建之后,服务启动完成后,jenkins会将所有的有服务kill掉。

 

已经尝试过方法 :

1,java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war  这种方法。因为是在TOMCAT中启动的,所以修改catalina.sh JAVA_OPTS的参数实现此方法  结果无效。

2, 在execute shell中加入BUILD_ID=DONTKILLME  已经尝试无效

3, 有资料说修改 /etc/sysconfig/jenkins 这种方式也不靠谱

4,临时改变BUILD_ID值,也无效果

 

以下是问题补充:

@林纳斯脱袜子_官方人员:为了让大家更明白,重新理了下过程 整理下思路,重新描述下: jenkins在构建任务完成后,通过SSH上传至 服务器后,远程执行脚本 a.sh a.sh执行里,会调取b.sh启动相关的服务 b.sh start srvname/b.sh stop srvname 所有的Echo在构建控制台上均会展示,最终jenkins构建成功 所有b.sh启动的服务,会被KILL掉。。 (2018/09/27 11:59)
加载中
0
j
joker游戏

第一个问题,springboot有没有后台启动,第二个jenkins不会kill掉进程的,应该是你脚本的问题啊

林纳斯脱袜子_官方人员
林纳斯脱袜子_官方人员
回复 @joker游戏 : 恩,接下来,我也打算整合docker了。哈哈。
j
joker游戏
回复 @林纳斯脱袜子 : 我猜的是jenkins没有正确启动脚本,或者因为权限限制了jenkins操作,或者是执行目录的变更导致shell语句失效,各个排查,或者贴出你的shell,我这边是用jenkins整合docker的,不会出现你这种情况
林纳斯脱袜子_官方人员
林纳斯脱袜子_官方人员
谢谢,脚本没有问题。自己单独执行脚本,是可以完全启动的。
0
为啥我就不胖呢
为啥我就不胖呢

export BUILD_ID=dontKillMe

林纳斯脱袜子_官方人员
林纳斯脱袜子_官方人员
回复 @simon西门 : 你把执行脚本和上传的,分开两个SSHServer处理就可以了
simon西门
simon西门
回复 @林纳斯脱袜子 : 后来怎么解决的,我也遇到了。
林纳斯脱袜子_官方人员
林纳斯脱袜子_官方人员
谢谢,试了不可。
0
lvxiucai
lvxiucai

请教一下,如何解决的

0
孤灯漂泊
孤灯漂泊

请教一下这么解决的,我也遇到同样的问题,无法解决,我就是按照先上传,然后再执行脚本的,也是两个sshserver处理的,怎么就不行呢

孤灯漂泊
孤灯漂泊
回复 @林纳斯脱袜子 : 还有一个原因,我的jenkins版本不支持在ssh server中执行脚本
孤灯漂泊
孤灯漂泊
回复 @林纳斯脱袜子 : 我现在用ssh server远程传输文件,然后执行post steps执行shell脚本,就是ssh site执行shell脚本,遇到问题跟你描述一样,无法解决。。。
林纳斯脱袜子_官方人员
林纳斯脱袜子_官方人员
把上传和执行脚本分开两个步骤处理就可以了。实测有效。
返回顶部
顶部