Jenkins启动springboot记录

Jenkins启动springboot记录

  1. 部署思路:

    拉取代码---》打包---》备份jar包到另一个目录(避免打包出问题)---》启动备份的那一个jar包

  2. 问题描述:

    1. 配置好maven、git、之后,配置构建之后动作,出现一个问题,在Jenkins里面执行Linux上面的启动脚本时不成功,Jenkins显示是成功了,但是脚本的启动语句执行失败了,具体原因不清楚,但是在Linux上面直接执行脚本是可以成功启动的,经过测试总结出应该是权限问题,但问题是Jenkins用户在安装的时候已经由Jenkins换成root,测试在Jenkins的指令框里面执行启动命令时是可以成功启动的,所以改变了下思路

  3. 解决方案:

    1. 把springboot的jar包备份、执行进程号关闭放在脚本里面,执行完脚本之后在Jenkins指令框中执行启动命令,一遍执行可能不成功,两遍才能成功(不知道是不是启动慢的问题)

  4. 代码:

    sh /var/lib/jenkins/workspace/testt_start

    cd /var/lib/jenkins/workspace/server

    nohup java -jar testt-1.0-SNAPSHOT.jar > out.log 2>&1 &

     

    对应的testt_start

#! /bin/bash

echo "stop SpringBoot testt-api"

pidstr=$(lsof -i:8899 |awk '{print $2}' | tail -n 2)
echo "获得进程号:"$pidstr

pid=${pidstr:4}
echo "截取到进程号"$pid

#杀掉以前可能启动的项目进程

if [ -n "$pid" ]; then
       kill -9 $pid;
fi

rm -rf /var/lib/jenkins/workspace/server/testt-1.0-SNAPSHOT.jar

echo "copy SpringBoot testt-api"
cp /var/lib/jenkins/workspace/testt/target/testt-1.0-SNAPSHOT.jar /var/lib/jenkins/workspace/server/testt-1.0-SNAPSHOT.jar

cd /var/lib/jenkins/workspace/server
echo "当前目录是:"
pwd

echo "start SpringBoot testt"
nohup java -jar testt-1.0-SNAPSHOT.jar > out.log 2>&1 &

exit

 

posted @   入世则饮江湖浊酒一杯  阅读(336)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示