Jenkins 自动构建Springboot 工程 , 构建后执行shell 脚本失效(无效)。
周末学习了一下 jekins。安装、配置、构建一路很顺利。但是问题来了,最后jenkins 提示构建成功,并且提示脚本执行成功。但是 Centos 上的 查了一下jar 文件的进程并没有启动成功。安装,部署,配置,网上的博客一大堆。这里给出一两个范本。https://www.cnblogs.com/ityouknow/archive/2017/11/26/7899349.ht...
周末学习了一下 jekins。安装、配置、构建一路很顺利。但是问题来了,最后jenkins 提示构建成功,并且提示脚本执行成功。
但是 Centos 上的 查了一下jar 文件的进程并没有启动成功。
安装,部署,配置,网上的博客一大堆。这里给出一两个范本。
https://www.cnblogs.com/ityouknow/archive/2017/11/26/7899349.html
http://www.itmuch.com/work/jenkins-in-action/
感谢周立大哥, 和 纯洁的微笑大哥。
我这里的配置是打包成功zhi之后,执行 front-v2-run.sh restart的脚本。
这是一个根据输入参数 status/stop/start/restart 来 后台运行jar 文件的 脚本。
脚本内容。
#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=/data/jenkins/app/front-v2.jar
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup java -jar $APP_NAME > /data/jenkins/app/admin.log 2&>1 &
echo "App is runing success!"
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
============================================
经过一段时间的查找。刚开始看到说是这样的。
1.Jenkins默认会在Build结束后Kill掉所有的衍生进程。(设置不杀掉启动脚本的配置)
https://blog.csdn.net/draven1122/article/details/84971885。具体信息在这位大佬的博客里。反正我试了不管用
2.使用组合指令。
https://blog.csdn.net/caixingyunzi/article/details/80714339 。 这个大佬的组合指令,他说是解决了,但是我这仍然不好使。
3.jenkins 在执行shell 命令时,只认 绝对路径 而且我的JAVA_HOME也是没问题的。
https://geekori.com/details.php?que_id=23802
https://blog.csdn.net/frank_passion/article/details/72782700
然后就把脚本里的 nohup java -jar $APP_NAME > /data/jenkins/app/admin.log 2&>1 & 改成了
nohup /usr/local/jdk1.8/bin/java -jar $APP_NAME > /data/jenkins/app/admin.log 2&>1 &
然后重新构建, jenkins 构建成功, ps -ef | grep front-v2.jar .
ok 就这样解决了。
再次感谢各位大佬的博客。
更多推荐
所有评论(0)