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

解决Jenkins默认终止Shell产生服务进程的问题

1、Windows环境

  • Jenkins进行Build steps的使用Execute Windows batch command启动微服务(Jar包),Jenkins会默认终止Shell产生的服务进程,而在命令行能够正常运行的服务进程。

1.1 使用命令行启动服务是正常

  • 使用命令行执行
    在这里插入图片描述
  • 正常启动nacos服务
    在这里插入图片描述
  • 正常输出日志
    在这里插入图片描述

1.2 使用Jenkins启动服务则会自动关闭服务

  • 设置启动服务脚本如下:
    在这里插入图片描述
  • Jenkins输出成功
    在这里插入图片描述
  • 实际服务没启动,在初始化时就被Jenkins关闭了
    在这里插入图片描述
  • 输出日志
    在这里插入图片描述

1.3、 解决方案

  • 修改Execute Windows batch command的脚本,在脚本首行加入 BUILD_ID=dontKillMe,告诉Jenkins不要关闭进程。
rem 设置局部变量,不让Jenkins自动关闭以下进程
set BUILD_ID=dontKillMe

rem 设置执行的jar包文件
set JAR_FILE_REGISTER=E:\jar\pigx-register.jar

rem 关闭已启动的进程
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8848') do (
    taskkill /F /PID %%a
)

rem 运行Jar包
start "register" /b  java -Dfile.encoding=utf-8 -Xms256m -Xmx256m -jar %JAR_FILE_REGISTER% > app.log 2>&1

http://www.kler.cn/a/577819.html

相关文章:

  • React基础之 forwardRef
  • 【Java代码审计 | 第四篇】SQL注入防范
  • uniapp实现微信小程序一键登录
  • 神经网络|(十四)|霍普菲尔德神经网络-Hebbian训练
  • Django模型数据查询:深入探索模型管理器Model.objects
  • MySQL表约束
  • 【js逆向】iwencai国内某金融网站实战
  • PDF 文件中的文本链接是如何定义的?
  • 在 CLion 中使用 Boost.Test 进行 C++ 单元测试
  • CentOS 7 aarch64上制作kernel rpm二进制包 —— 筑梦之路
  • 基于java社交网络安全的知识图谱的构建与实现
  • 谈谈常用的分布式 ID 设计方案
  • GPU/CUDA 发展编年史:从 3D 渲染到 AI 大模型时代(上)
  • javascript字符串截取有哪些
  • 从零开始学机器学习——逻辑回归
  • 对ArrayList中存储的TreeNode的排序回顾
  • 设计一个SVF下载器之一:整体思路
  • pytorch常用参数初始化
  • es优化方面
  • LeetCode1137 第N个泰波那契数