jenkins ssh 自动杀掉衍生进程 linux centos

首先网上针对该问题的解决方案:

1.启动 Jenkins 的时候加上 -Dhudson.util.ProcessTree.disable=true,也就是 java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war

2.在后台进程前加上 BUILD_ID=dontKillMe,也就是 BUILD_ID=dontKillMe nohup npm start >/var/app/nohup.out 2>&1 &


经过我个人尝试,以上方法不能解决问题,而我的解决方案如下:


前提:

1.Jenkins安装完成。

2.SSH地址配置正确。

3.安装了 Publish Over SSH 插件


操作:

1.job里设置SH执行命令的地址

jenkins ssh 自动杀掉衍生进程 linux centos_第1张图片


2.编写temp.sh内容

#!/bin/bash

nohup /usr/local/jdk1.8.0_102/bin/java -jar /usr/local/program/project/app.jar > /usr/local/program//project/app.log 2>&1  &

proc_name="app.jar"

name_suffixx="\>"

proc_id=`ps -ef|grep -i ${proc_name}${name_suffixx}|grep -v "grep"|awk '{print $2}'`

echo ${proc_name}" pid:"

echo ${proc_id[@]}

注意其中的绝对路径。


3.执行构建。



你可能感兴趣的:(Jenkins)