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}"
相关推荐
IT利刃出鞘17 小时前
Docker--宿主机和容器相互拷贝文件
运维·docker·容器
云飞云共享云桌面17 小时前
工厂办公环境如何实现一台服务器多人共享办公
运维·服务器·网络·数据库·3d
路上阡陌17 小时前
ELK 部署
运维·elk·jenkins
zr52685544717 小时前
ModbusTCP 转 Profinet 主站网关
运维·服务器·网络
青岛佰优联创新科技有限公司18 小时前
服务器托管,服务器运维的选择
运维·服务器
NiKo_W19 小时前
Linux 初识
linux·运维·服务器
知白守黑2671 天前
Ansible角色
运维·服务器·ansible
Jwest20211 天前
工业显示器在地铁电力监控与运维中的应用
运维·计算机外设
Mr. Cao code1 天前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
wanhengidc1 天前
云手机运行流畅,秒开不卡顿
运维·网络·科技·游戏·智能手机