服务端发布jar包的shell脚本

jar包的同级目录下创建restart.sh

#!/bin/bash
    APP_NAME=consumer-0.0.1-SNAPSHOT.jar  
    CONFIG_NAME=./conf/application.yml
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh a.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
         sudo nohup java -jar -Dspring.config.location=$CONFIG_NAME $APP_NAME  &
       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

 

posted @ 2020-08-07 18:37  骑着蜗牛看海呀  阅读(318)  评论(0编辑  收藏  举报