起名字好烦啊 2022-05-11 10:49 采纳率: 0%
浏览 181

jenkins部署远程springboot项目时,无法启动

问题遇到的现象和发生背景

我这边使用jenjins实现springboot项目的自动打包,远程部署功能
具体流程是:
1:代码修改后,提交到gitee仓库后,触发jenkins自动构建生成新的jar包
2:jenkins将jar发送到远程服务器
3:通过脚本启动项目
目前1,2两个步骤都执行成功,但是3项目启动时无法成功

问题相关代码,请勿粘贴截图

下面我是jenkins中的配置

img

启动脚本如下:
#!/bin/bash
source /etc/profile
#jar所在目录
JAR_PATH=/usr/local/app/javademo
#jar名称
JAR_NAME=xn-demo-0.0.1-SNAPSHOT

#结束进程
echo "查询进程id-->$JAR_NAME"
PID=ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}'
echo "得到进程ID:$PID"
for id in $PID
do
kill -9 $id
done
echo "结束进程完成"

echo "服务启动开始"
#运行jar

cd $JAR_PATH
chmod 777 $JAR_NAME.jar
nohup java -jar $JAR_PATH/$JAR_NAME.jar &

echo "服务运行成功"

运行结果及报错内容

img


远程服务器上的脚本已经执行了,但是项目实际并未启动

我的解答思路和尝试过的方法

后面我在启动脚本上加上了这段之后,项目就神奇的可以启动成功了,但具体什么原因还不清楚
#!/bin/bash
source /etc/profile
#jar所在目录
JAR_PATH=/usr/local/app/javademo
#jar名称
JAR_NAME=xn-demo-0.0.1-SNAPSHOT

#结束进程
echo "查询进程id-->$JAR_NAME"
PID=ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}'
echo "得到进程ID:$PID"
for id in $PID
do
kill -9 $id
done
echo "结束进程完成"

echo "服务启动开始"
#运行jar

cd $JAR_PATH
chmod 777 $JAR_NAME.jar
nohup java -jar $JAR_PATH/$JAR_NAME.jar &

PID=ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' #此行很重要,不加服务无法启动,原因未知
echo "得到进程ID:$PID"

echo "服务运行成功"

jenkins中日志

img


启动日志中打印了nohup的相关日志

我想要达到的结果

经过上面的修改也实现了项目启动,但是是什么原因造成的不能启动,以及加上“PID=ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}'”就可以启动的原因也不清楚,有没有懂的,求赐教

  • 写回答

2条回答 默认 最新

  • p_moriarty 2022-05-11 11:00
    关注

    因为端口占用了。你重启一下服务器,你会发现你第一次部署绝对成功的。这个其实是要查询出来已经运行的java程序,干掉他。重新运行的意思

    评论

报告相同问题?

问题事件

  • 创建了问题 5月11日

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮