Java 应用程序启动停止暂停启动脚本

#!/bin/sh  
# Author Pine Chown
# date 2018-12-06
# desc 程序启动暂停脚本 

APP_HOME=/usr/local/java/application

#启动的程序名称
APP_NAME=charging

# 配置文件生产环境
PROFILE=pro

LOG_PATH=/usr/local/java/logs
LOG_FILE=patch

#java虚拟机启动参数
JAVA_OPTS="-Xmx1048m -Xms1024m"

#**************************
#(函数)判断程序是否已启动
#初始化psid变量
#****************************
psid=0

checkpid() {
   JPID=$(ps -ef | grep java.*$APP_NAME.*.war | grep -v grep | awk '{ print $2 }')
   if [ -z "$JPID" ]
   then
      psid=0
   else
      psid=$JPID
   fi
}  

#**************************
#启动程序
#****************************
start() {
   checkpid

   if [ $psid -ne 0 ]; then
      echo "================================"
      echo "warn: $APP_NAME already started! (pid=$psid)"
      echo "================================"
   else
      echo -n "Starting $APP_NAME ..."

      nohup java -jar $APP_HOME/$APP_NAME*.war $JAVA_OPTS --spring.profiles.active=$PROFILE >/dev/null 2>&1 &
      checkpid
      if [ $psid -ne 0 ]; then
         echo "(pid=$psid) [OK]"
      else
         echo "[Failed]"
      fi
   fi
}

#*****************************
#停止程序
#*****************************
stop() {
	checkpid
   
   if [ $psid -ne 0 ]; then
      echo -n "Stopping $APP_NAME ...(pid=$psid) "
      kill -9  $psid
      if [ $? -eq 0 ]; then
         echo "[OK]"
      else  
         echo "[Failed]"
      fi  
 
      checkpid  
      if [ $psid -ne 0 ]; then  
      	 stop    
      fi 
   else  
      echo "================================"  
      echo "warn: $APP_NAME is not running"  
      echo "================================"  
   fi  
}  
  
#****************************
#检查程序运行状态
#****************************
status() {  
   checkpid  
  
   if [ $psid -ne 0 ];  then  
      echo "$APP_NAME is running! (pid=$psid)"  
   else  
      echo "$APP_NAME is not running"  
   fi  
}  

#********************************
#读取脚本的第一个参数($1),进行判断  
#参数取值示例:{start|stop|restart|status}  
###################################  
case "$1" in
   'start')
      start
      ;;
   'stop')
     stop
     ;;
   'restart')
     stop
     start
     ;;
   'status')
     status
     ;;
  *)
     echo "Usage: $0 {start|stop|restart|status}"
     exit 1
esac
exit 0

编写完成!!!

猜你喜欢

转载自blog.csdn.net/u012397222/article/details/84847878