Jenkins启动springboot记录
Jenkins启动springboot记录
-
部署思路:
拉取代码---》打包---》备份jar包到另一个目录(避免打包出问题)---》启动备份的那一个jar包
-
问题描述:
-
配置好maven、git、之后,配置构建之后动作,出现一个问题,在Jenkins里面执行Linux上面的启动脚本时不成功,Jenkins显示是成功了,但是脚本的启动语句执行失败了,具体原因不清楚,但是在Linux上面直接执行脚本是可以成功启动的,经过测试总结出应该是权限问题,但问题是Jenkins用户在安装的时候已经由Jenkins换成root,测试在Jenkins的指令框里面执行启动命令时是可以成功启动的,所以改变了下思路
-
-
解决方案:
-
把springboot的jar包备份、执行进程号关闭放在脚本里面,执行完脚本之后在Jenkins指令框中执行启动命令,一遍执行可能不成功,两遍才能成功(不知道是不是启动慢的问题)
-
-
代码:
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
看这江湖浊酒,请共饮之
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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语句:使用策略模式优化代码结构