Bash启停脚本

 
#!/bin/bash

source /etc/profile

app=$2

if [ "$1" = "" ]; then
  echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
  exit 1
fi

if [ "$app" = "" ]; then
  echo -e "\033[0;31m 未输入应用名 \033[0m"
  exit 1
fi

function start() {
  count=$(ps -ef | grep java | grep $app | grep -v grep | wc -l)
  if [ ${count} != 0 ]; then
    pid=$(ps -ef | grep java | grep $app | grep -v grep | awk '{print $2}')
    echo "$app is running...pid:$pid"
  else
    echo "start $app ..."
    nohup java -jar $2*.jar > log.log 2>&1 &
    echo "started $app ...log file is log.log"
  fi
}

function stop() {
  count=$(ps -ef | grep java | grep $app | grep -v grep | wc -l)
  pid=$(ps -ef | grep java | grep $app | grep -v grep | awk '{print $2}')
  if [ $count != 0 ]; then
    kill -9 $pid
    echo "$app is stoped...pid:$pid"
  fi
}

function restart() {
  stop
  sleep 2
  start
}

function status() {
  count=$(ps -ef | grep java | grep $app | grep -v grep | wc -l)
  if [ $count != 0 ]; then
    pid=$(ps -ef | grep java | grep $app | grep -v grep | awk '{print $2}')
    echo "$app is running...pid:$pid"
  else
    echo "$app is not running..."
  fi
}

case $1 in
start)
  start
  ;;
stop)
  stop
  ;;
restart)
  restart
  ;;
status)
  status
  ;;
*)

  echo -e "\033[0;31m Usage: \033[0m  \033[0;34m sh  $0  {start|stop|restart|status}  {SpringBootJarName} \033[0m
\033[0;31m Example: \033[0m
	  \033[0;33m sh  $0  start demo.jar \033[0m"
  ;;
esac