分享一份启动,关闭,重启springboot项目的shell脚本

写在前面

近期,公司要求在服务器上的项目要做一些调整,都统一变成一下结构

- conf目录
- lib目录
- log目录
- script目录

conf 目录主要存放spring boot的配置文件,可以变更对应的配置数据
lib 目录存放的是已经打好版本的spring boot 可执行jar包
log 目录存放的是对应系统产生的系统日志
script 目录存放的是启动系统的脚本

在这里插入图片描述
shell 源码如下:

#!/bin/bash
    #jar名称
    **APP_NAME=../lib/a.jar** # 这块替换为你的jar包即可
    CONFIG_NAME=../conf/application.properties
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh a.sh [start|stop|restart|status]" # a.sh 为这个脚本名称 替换为你喜欢的名称即可
        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 -Dspring.config.location=$CONFIG_NAME $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

使用命令

sh a.sh [start|stop|restart|status]
发布了53 篇原创文章 · 获赞 64 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/lvoyee/article/details/104017834