springboot服务运行脚本(jar)

只需修改: APP_NAME,以及start() 方法里的 nohub java -jar 部分析;

#!/bin/sh
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=springboot-3.1.3-SNAPSHOT.jar
APP_DIR=/xxx/apps
#使用说明,用来提示输入参数
usage() {
      echo "Usage: sh demo.sh [start|stop|restart|status]"
      exit 1
}

#检查程序是否在运行
is_exist() {
      pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
      echo "pid==${pid}"
      #如果不存在返回1,存在返回0
      if [ -z "${pid}" ]; then
        return 1
      else
        return 0
      fi
}

#启动方法
start() {
     echo "*********check is_exist in first*****"
     is_exist
     if [ $? -eq "0" ]; then
       echo "${APP_NAME} is already running. pid=${pid} ."
       kill $pid
       sleep 5s
       kill -9 $pid
       echo "kill pid " $pid
     else
       echo "${APP_NAME} is not running and pid is null ."
       nohup java -Xmx512m -Xms512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${APP_DIR}/${APP_NAME}.dump -jar ${APP_DIR}/${APP_NAME} --spring.profiles.active=prod > /app/logs/${APP_NAME}.log 2>&1 &
       echo "run end ************"
       #nohup java -jar $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
欢迎您的到来,感谢您的支持!

为您推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注