jenkins自动杀掉衍生进程怎么解决

解决办法:

  1. 启动 Jenkins 的时候:加上 -Dhudson.util.ProcessTree.disable=true,也就是 java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war 或者 修改/etc/sysconfig/jenkins配置,在JENKINS_JAVA_OPTIONS中加入-Dhudson.util.ProcessTree.disable=true。需要重启jenkins生效
  2. 在后台进程前加上 BUILD_ID=dontKillMe,也就是 BUILD_ID=dontKillMe nohup npm start >/var/app/nohup.out 2>&1 & 或者在 execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins杀死启动的进程

用了上面二个方法后,就解决jenkins自动杀npm进程的问题了.

shell实例:

#!/bin/bash

# 环境
ACTIVE=daily

# jar包本地maven仓库路径
JAR_PATH='/root/.m2/repository/com/test/0.0.1-SNAPSHOT/'

# 进程名
PNAME='test-0.0.1-SNAPSHOT.jar'

# 查询进程id并且杀掉
#ps -ef | grep $PNAME | grep -v grep | awk '{print $2}'  | xargs kill -9
PID=$(ps -ef | grep $PNAME | grep -v grep | awk '{print $2}')

echo "start pid: $PID"

kill -9 $PID

# 启动jar包
BUILD_ID=dontKillMe nohup java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar $JAR_PATH/$PNAME --spring.profiles.active=$ACTIVE &

NEW_PID=$(ps -ef | grep $PNAME | grep -v grep | awk '{print $2}')

echo "start success,new pid: $NEW_PID"


echo "------------- end ---------------"
 

猜你喜欢

转载自blog.csdn.net/baidu_35140444/article/details/82981531