springboot jar包的启动脚本

springboot jar包的启动脚本

第一步:

         先把一个springboot项目打包,打成jar形式
         这边我使用的Idea

在这里插入图片描述

第二步:启动脚本书写

       建一个demo-web.sh的脚本文件
       
       脚本文件的内容:
       #!/bin/sh
       #这里可替换为你自己的执行程序,其他代码无需更改
       APP_NAME=demo-web.jar
       #使用说明,用来提示输入参数
       usage() {
               echo "Usage: sh demo.sh [start|stop|restart|status]"
               exit 1
       }

       #检查程序是否在运行
       is_exist() { 
               pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
               echo "pid==${pid}"
               #如果不存在返回1,存在返回0
               if [ -z "${pid}" ]; then
                  return 1
               else
                  return 0
               fi
        }

       #启动方法
      start() {
              echo "*********check is_exist in first*****"
              is_exist
              if [ $? -eq "0" ]; then
                 echo "${APP_NAME} is already running. pid=${pid} ."
                 kill $pid
                 sleep 5s
                 kill -9 $pid
                 echo "kill pid " $pid
              else
                 echo "${APP_NAME} is not running and pid is null ."
                 nohup java -Xmx512m -Xms512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/application/smart-building-service/JeeSite-Web.dump -jar /usr/local/application/smart-building-service/JeeSite-Web.jar > /usr/local/application/smart-building-service/JeeSite-Web.log 2>&1 &
                 echo "run end ************"
                 #nohup java -jar $APP_NAME > /dev/null 2>&1 &
              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

第三步:

     jar包和shell脚本放在同一个文件夹下
     指令:
     sh demo-web.sh start 
     sh demo-web.sh stop
     sh demo-web.sh restart
     sh demo-web.sh status

补充:

     #  -Xmx20m -Xms5m -XX:HeapDumpOnOutofMemoryError -XX:HeapDumpPath=d:/a.dump
     #  分配了20M最大空间 ,启动 最小空间5M , 发生了 内存溢出错误 dump路径为a.dump

    #  2>&1 输出所有的日志文件
    #  ${path}.log  日志输出地址
    #  & 后台启动
发布了33 篇原创文章 · 获赞 42 · 访问量 3182

猜你喜欢

转载自blog.csdn.net/weixin_40991408/article/details/88997180