周末学习了一下 jekins。安装、配置、构建一路很顺利。但是问题来了,最后jenkins 提示构建成功,并且提示脚本执行成功。

但是 Centos 上的 查了一下jar 文件的进程并没有启动成功。

安装,部署,配置,网上的博客一大堆。这里给出一两个范本。

感谢周立大哥, 和 纯洁的微笑大哥。

我这里的配置是打包成功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掉所有的衍生进程。(设置不杀掉启动脚本的配置)

2.使用组合指令。

3.jenkins 在执行shell 命令时,只认 绝对路径 而且我的JAVA_HOME也是没问题的。

然后就把脚本里的    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 就这样解决了。

再次感谢各位大佬的博客。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐