zoukankan      html  css  js  c++  java
  • jenkins默认在build结束后会kill掉所有的衍生进程

    在使用jenkins进行自动化部署服务的过程中,发现调用服务器的shell命令无法正常启动tomcat,但是构建日志显示是成功执行的,而手动在服务器却是可以正常启动tomcat。

    原因:jenkins默认在build结束后会kill掉所有的衍生进程

    Jenkins提供了hudson.util.ProcessTree.disable和hudson.util.ProcessTreeKiller.disable两个属性来控制些特性,值为true将禁用此特性。hudson.util.ProcessTree.disable从Jenkins 1.260开始使用,而使用1.315之前的Hudson时只能使用hudson.util.ProcessTreeKiller.disable,为了版本兼容,在Jenkins 1.260后这两个属性都可能使用,建议使用1.260之的Jenkins用户使用hudson.util.ProcessTree.disable属性。

    解决方案:

    1. 针对每个item:在execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins杀死启动的tomcat进程

    2.永久方案:启动jenkins 的时候禁止jenkins杀死衍生进程

    ● 使用java -jar启动,-Dhudson.util.ProcessTree.disable=true -jar jenkins.war
    ● 使用Tomcat启动,Linux系统修改catalina.sh,在环境变量的说明后,脚本开始前加上这句话
    JAVA_OPTS="$JAVA_OPTS -Dhudson.util.ProcessTree.disable=true";

    修改好Tomcat的配置文件后重新启动Tomcat

    3. 在启动jenkins 的时候禁止jenkins杀死衍生进程(此方法未测试,也是解决办法之一)

        修改/etc/sysconfig/jenkins配置,在JENKINS_JAVA_OPTIONS中加入-Dhudson.util.ProcessTree.disable=true。需要重启jenkins生效

        此方法配置一次后,所有的job都无需设置BUILD_ID,就能够防止jenkins杀死启动的java进程

     




  • 相关阅读:
    Gym 101466(完整)
    HDU 3639 Hawk-and-Chicken (强连通缩点+DFS)
    hdu3394--Railway(点的双连通分量)
    hdu2732 Leapin' Lizards 最大流+拆点
    hdu2609 How many 字典树+最小表示法
    hdu2594 Simpsons’ Hidden Talents LCS--扩展KMP
    hdu2509 Be the Winner 博弈
    hdu2461 Rectangles 线段树--扫描线
    hdu2389 Rain on your Parade 二分图匹配--HK算法
    hdu2328 Corporate Identity 扩展KMP
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/11239984.html
Copyright © 2011-2022 走看看