jekins部署java程序若干小知识点和问题

2 篇文章 0 订阅
2 篇文章 0 订阅

1. 用脚本启动程序的方式,jekins调用脚本失败

原因之一:一般情况下是命令中直接写的‘java’命令,而jekins找不到java命令

解决:把java命令写为绝对路径下的java命令,同时推荐所有涉及到命令的地方都写绝对路径

2. jekins执行脚本部署程序后,界面一直转圈不退出

原因:启动命令是‘nohup java -jar .. &’的方式,这个‘nohup’就导致了这样不能推出,因为我们平常直接在linux中执行的时候,如果脚本有这个nohup,都需要额外的再敲一次回车才会退出等待窗口。

解决:

方案一:

写两个命令,命令2是启动命令(start.sh),命令1是调用命令2的命令,并且在命令1中写上自动回车的等效语句,如下:

str=$"\n"
nohup sh start.sh > nohup.out &
sstr=$(echo -e $str)
echo $sstr

这时候命令2可以是没有nohup的。

方案二:

直接在启动命令下插入创建文件的命令即可退出。为了收尾,我们就索性再加一句删除这个文件的命令。。。。

方法三:

类似方法一,不过是写三个命令文件:一个stop.sh,一个sart.sh,一个restart.sh,其中restart.sh调用另外两个,并且在两者之间加了一句重命名文件夹的命令如下:

restart.sh

#!/bin/bash
sh stop.sh
mv  jfqqq.jar  running.jar
sh start.sh

stop.sh (找到running.jar的启动命令的线程id,关闭线程)

#!/bin/sh
pids=`ps -ef | grep  running.jar| grep -v grep | awk '{print $2}'`
echo find pids: ${pids}
for pid in ${pids[@]}; do
 echo kill pid: ${pid}
 kill -9 ${pid}
done;
>nohup.out
mv running.jar jfqqq.jar.bak

start.sh(启动running.jar,并且nohup守护,&支持退出,>/../../nohup.out执行日志输出位置)

#!/bin/bash
nohup /usr/local/jdk-11.0.2/bin/java -jar  /root/project/jfqqq/running.jar  > /root/project/jfqqq/nohup.out &
~                                                                                                                                                                                                    
~                                                                                                                                                                                                    
~              

jekins(只需要在post step设置即可,pre用不到):

3. 想要实现jekins启动程序时,可以实时输出程序启动日志,然后在启动成功后,再退出

思路:

梳理要解决的问题:

1. jekins程序如何知道程序启动成功

2. jekins如何退出

3. 如何让jekins打印执行日志(其实就等价于打印出它操作的命令的日志以及结果)

解决:

问题1. 这个通过寻找程序启动成功的点即可,比如,启动springboot工程,默认tomcat,成功的话会有输出‘Tomcat started on port’字样,因此只要让jekins执行一个查看日志的命令并在看到关键字后退出的命令即可。如下(使用tail -f 不停刷新查看,然后利用sed匹配关键字后退出):

问题2. 这个看上面的问题中,有解决方案

问题3. 这个只需要勾选jekins的一个高级设置即可(需要点击‘高级’按钮来展开界面):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值