Jenkins | Jenkins构建成功服务进程关闭问题

Jenkins构建成功服务进程关闭问题

  • [1. 原因](#1. 原因)
  • [2. 解决](#2. 解决)

1. 原因

Jenkins 默认会在构建结束时终止所有由构建任务启动的子进程,即使使用了nohup或后台运行符号&。

2. 解决

在启动脚本中加上 BULID_ID=dontkillme

复制代码
#--------------解决jenkins 自动关闭进程问题-------------
BULID_ID=dontkillme
#--------------解决jenkins 自动关闭进程问题--------------

如下 我的启动脚本

powershell 复制代码
#!/bin/bash
#!/bin/bash

# 停止旧服务
echo "停止 campus-admin 服务..."
PID=$(ps -ef | grep 'campus-admin.jar' | grep -v grep | awk '{print $2}')
if [ -n "${PID}" ]; then
  kill -15 ${PID}
  sleep 3
  # 强制停止残留进程
  if ps -p ${PID} > /dev/null; then
    kill -9 ${PID}
  fi
fi

# 备份旧 Jar 包
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
echo "备份旧包到 campus-admin.jar.${TIMESTAMP}"
mv /home/app/campus-admin/campus-admin.jar /home/app/campus-admin/campus-admin.jar.${TIMESTAMP}

# 复制新 Jar 包(假设从 Jenkins 工作空间拷贝)
echo "部署新包..."
cp /root/.jenkins/workspace/campus-admin/campus-admin/target/campus-admin.jar /home/app/campus-admin/

# 启动新服务(指定日志路径)
#--------------解决jenkins 自动关闭进程问题-------------
BULID_ID=dontkillme
#--------------解决jenkins 自动关闭进程问题--------------

echo "启动 campus-admin 服务...日志路径:/log/java/campus-admin.log"
setsid java -jar /home/app/campus-admin/campus-admin.jar > /log/java/campus-admin.log 2>&1 &

# 检查启动状态
ps -ef|grep 'campus-admin.jar'
PID=$(ps -ef | grep 'campus-admin.jar' | grep -v grep | awk '{print $2}')
echo "应用启动成功,PID: ${PID}"
相关推荐
无敌暴龙兽z1 小时前
离线环境安装elk及设置密码认证
运维·elk
好奇的菜鸟2 小时前
如何在 Ubuntu 24.04 (Noble) 上使用阿里源
linux·运维·ubuntu
bcbobo21cn2 小时前
初步了解Linux etc/profile文件
linux·运维·服务器·shell·profile
wayuncn2 小时前
月付物理服务器租用平台-青蛙云
运维·服务器·服务器租用·服务器托管·物理机租用
望获linux3 小时前
【实时Linux实战系列】CPU 隔离与屏蔽技术
java·linux·运维·服务器·操作系统·开源软件·嵌入式软件
0wioiw03 小时前
C#基础(项目结构和编译运行)
linux·运维·服务器
2401_873587824 小时前
Linux常见指令以及权限理解
linux·运维·服务器
RW~4 小时前
Minio安装配置,桶权限设置,nginx代理 https minio
运维·nginx·https·minio
李洋-蛟龙腾飞公司4 小时前
HarmonyOS NEXT应用元服务常见列表操作分组吸顶场景
linux·运维·windows
链上Sniper5 小时前
智能合约状态快照技术:实现 EVM 状态的快速同步与回滚
java·大数据·linux·运维·web3·区块链·智能合约