我看了一下网上,很多个都是骗点击量的,都是复制粘贴的,最终让我找到源头居然是14年的时候发布的贴子,你们这些个无良青年,不能用的都不要发出来,
我当前的服务器是centos8.3的,安装的是最新的j'enkins
最后参考一位哥们的博客,不罗嗦,上菜
第一步(nohup这里是创建后台启动进程的):
BUILD_ID=DONTKILLME nohup java -jar xxx.jar > /dev/null 2&1 &
或者 BUILD_ID=DONTKILLME xxx.sh
第二步是修改配置:
非war包启动: JENKINS_JAVA_OPTIONS="-Dhudson.util.ProcessTree.disable=true"
war启动:nohup java -Dhudson.util.ProcessTree.disable=true -jar xxx.jar > /dev/null 2&1 &
最后保存,并且重启jenkins
pid=$(ps -ef|grep xxx.jar)
echo "项目进程ID:$pid================要kill的进程:$BUILD_ID"
BUILD_ID=dontKillMe start_item "testItem"
sleep 5s
pid=$(ps -ef|xxx.jar)
echo "222项目进程ID:$pid================222要kill的进程:$BUILD_ID"
function start_item(){
pid=$(ps -ef | grep java | grep -v grep | grep "$1" | awk '{print $2}')
if [ -n "$pid" ]; then
echo "app is runing."
else
echo "$(which java)"
nohup java -jar $1 > /dev/null 2>&1 &
echo "start result: $? "
sleeptime=30
until [ $sleeptime -lt 0 ]
do
jpid=$(ps -ef | grep java | grep -v grep | xxx.jar|awk '{print $2}')
if [ -n $jpid ]
then
echo "已经启动项目进程:$jpid"
break
else
echo "项目进程:$jpid"
echo "剩余等待时间:$sleeptime 秒"
sleeptime=`expr $sleeptime - 1`
sleep 1s
fi
done
fi
}
修改一下2021-06-05 14:31 昨天有不懂的问我shell,这个你们自己去看,shell给你们贴出来了,自己琢磨一下,加入jar包即可运行
亲测,可行