#!/bin/bash

#需要修改两个参数 1、包名  2、启动命令

#修改位置一:这里可替换为你自己的执行程序

APP_NAME=demo-java.jar

 

 

#使用说明,用来提示输入参数

usage() {

    echo "Usage: sh 脚本名.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

	#修改位置二:

    nohup java -jar /root/springboot-java/$APP_NAME --spring.config.location=/root/springboot-java/application.properties > /root/springboot-java/nohup.out 2>&1 &

    echo "${APP_NAME} start success"

  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

给start.sh文件授权:chmod 744 start.sh

启动服务,在当前目录下执行:./start.sh start

关闭服务,在当前目录下执行:./start.sh stop

重启服务,在当前目录下执行:./start.sh restart

查看服务状态,在当前目录下执行:./start.sh status