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进程

     




  • 相关阅读:
    【转】Exchange Server 的防火墙开放端口
    【转】AD常用端口
    centos6安装python3
    CMD下的netstat命令
    CMD定时倒数
    【转】netstat 的10个基本用法
    不联网如何PING通WIN主机和VMWARE(懵懂版,不含原理)
    【转载】Putty出现 Network error:Software caused connection abort
    MFC Unicode 字符集下格式转换
    MFC嵌套OpenCV窗口并显示图片
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/11239984.html
Copyright © 2011-2022 走看看