当前位置: 首页 > news >正文

Jenkins发布spring项目踩坑——nohup java -jar发布后显示成功,但实际jps查询并未运行

Build Steps中选择执行Shell,内容如下

⚠️

如果纯写nohup java -jar 肯定会出现发布后显示成功,但实际用jps命令查询并未运行的情况,这是因为jenkins根据BUILD_ID识别某个进程是否为构建过程的衍生进程,所以添加BUILD_ID后,jenkins就无法识别是否为衍生进程,则此进程能在后台保留运行。
结论:Jenkins程序只负责运行伪命令行nuhup 命令,并不保证是否成功运行 nuhup后面的命令。

TARGET_DIR=/opt/app/springboot-test # 自定义存放jar包的目录
JAR_NAME=demo-0.0.1.jar   # 根据实际产物名调整
mkdir -p "$TARGET_DIR"
# 拷贝最新构建产物
cp -f target/*.jar "$TARGET_DIR/"# 检测并停止旧进程(更稳妥的 ps+grep)
PID=$(ps -ef | grep java | grep "$JAR_NAME" | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; thenecho "发现旧进程 PID: $PID,正在停止..."kill -9 "$PID"echo "旧进程已停止"
elseecho "没有发现旧进程"
fi# 启动新进程
echo "启动新版本服务..."
BUILD_ID=spring_test_demo # 这个值随便写
nohup java -jar $TARGET_DIR/$JAR_NAME > $TARGET_DIR/app.log 2>&1 &
http://www.xdnf.cn/news/1346797.html

相关文章:

  • kubernetes中pod的管理及优化
  • Python打卡Day49 CBAM注意力
  • Apache Ozone 2.0.0集群部署
  • 微信原生下载互联网oss资源保存到本地
  • CCleaner v1.2.3.4 中文解锁注册版,系统优化,隐私保护,极速清理
  • Unreal Engine Class System
  • 图数据库(neo4j)基础: 分类/标签 节点 关系 属性
  • 蓝牙部分解析和代码建构
  • set_disable_timing应用举例
  • OpenCV 图像边缘检测
  • 从“配置化思维”到“前端效率革命”:xiangjsoncraft 如何用 JSON 简化页面开发?
  • k8s 简介及部署方法以及各方面应用
  • 子类(派生类)使用父类(基类)的成员
  • 快速了解神经网络
  • AI赋能体育训练突破:AI动作捕捉矫正精准、战术分析系统提效率,运动员破瓶颈新路径
  • 数据结构之深入探索归并排序
  • go 常见面试题
  • NLP学习之Transformer(2)
  • 网络编程6(JVM)
  • 保护 PDF 格式:禁止转换为其他格式文件
  • html基本元素
  • C#_接口设计:角色与契约的分离
  • HTML5详篇
  • 自定义单线通信协议解析
  • Yapi中通过MongoDB修改管理员密码与新增管理员
  • 【Java后端】 Spring Boot 集成 Redis 全攻略
  • 软件设计师——计算机网络学习笔记
  • 华为网路设备学习-29(BGP协议 四)路由策略-实验
  • 分段渲染加载页面
  • 【LeetCode 热题 100】139. 单词拆分——(解法一)记忆化搜索