部署系统

1、在/home/ 目录下创建要部署的服务的名称;

2、在idea的maven中先clean,禁用test选项,后package打包,则可以在target目录中得到jar包文件;

image-20221024142331455

3、将生成的jar包文件拷入/home/filename/中,将application.yml拷入config文件中;

image-20221024142652049

4、sh app.sh start 运行app.sh文件则可以启动系统,watch.out为启动日志。

app.sh文件内容:

#!/bin/sh

echo "======================================="
echo "Shell: $0"

# 获得本地路径
CURR_FOLDER=`pwd`
echo "Application folder: ${CURR_FOLDER}"
cd ${CURR_FOLDER}

# 获得jar文件的名字
JAR_NAME=`ls -l ${CURR_FOLDER} | grep .jar | grep -v grep | awk '{print $9}'`
echo "Application jar file: ${JAR_NAME}"

echo "======================================="

OUT_FILE="watch.out"

# 函数部分
hasrun(){
  pid=`ps --no-heading -ef | grep ${JAR_NAME} | grep -v grep | awk '{print $2}'`
  # -n 判断字符串长度不为0 -z 判断字符串长度为0
  if [ -z ${pid} ]; then    
    echo 0
  else    
    echo ${pid}
  fi
}

start(){
    # 是否已运行    
    result=$(hasrun)
    
    if [ $result -ne "0" ]; then
      echo "Application has already started, the pid is $result"
      exit 1   
    else
      # 启动程序
      echo "Starting application ... " 
      nohup java -jar ${JAR_NAME} > ${OUT_FILE} 2>&1 &      
      echo "Application has started, the pid is $! you can check file in ${OUT_FILE} for deatils."     
    fi
}

stop(){
    # 是否已运行
    result=$(hasrun)
    
    if [ $result -eq "0" ]; then
      # 程序没有运行
      echo "Application is not running ..."
      exit 1      
    else    
      # 程序在运行中
      echo "Stopping application ..."    
      kill ${result}
      
      # 用循环的方式检测程序是否关闭
      count=0
      while [ $count -lt 1 ]; do
        sleep 1s
        count=0
        exist=`ps --no-heading -p ${result}`
        if [ -z ${exist} ] ; then          
          count=1
          echo "Applicatoin has stoped." 
        fi
      done
      
      
    fi    
}

restart(){
  stop
  start  
}


case $1 in
"start")
  start
  ;;
"stop")
  stop
  ;;
"restart")
  restart
  ;;
*)
  echo "there is no command"
  exit 1;
  ;;
esac

原文地址:http://www.cnblogs.com/coolsheep/p/16850598.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性