栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

jenkins自动化打包部署,jenkins执行sh脚本不退出问题

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jenkins自动化打包部署,jenkins执行sh脚本不退出问题

介绍

Jenkins是开源软件项目,主要用来自动化打包部署。使用jenkins彻底告别手动部署的麻烦与繁琐。

安装部署jenkins
    官方下载地址启动jenkins war包登入jenkins设置maven,jdk
    由于jenkins机器已有Maven与jdk,这里直接设置对应安装路径即可
项目构建与部署 设置应用部署目标服务器

    配置远程服务器ssh登录
    设置密码与超时时间
新增maven项目
    输入项目名称,类型
    设置代码库,这里我使用的是svn
    设置编译脚本
    编译成功之后将可执行jar包推送到目标服务器并远程调用重启脚本


    执行之前要设置为pty环境,不然jenkins可能无法从非pty环境的脚本中退出
    保存jenkins配置在目标服务器编写重启脚本
APP_NAME=/home/iic/static/xx.jar
#执行命令有误时,提示使用说明参数
usage() {
 echo "Usage: bash.sh [start|stop|restart|status]"
 exit 1
}

#检查程序是否已经在运行
is_exist(){
 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
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
    java -XX:+UseG1GC -jar $APP_NAME --spring.profiles.active=prod &
  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
项目部署与发布
    执行jenkins构建与发布
    查看jenkins执行结果

    转到服务器查看部署结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/757803.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号