Spring Boot是Java的一个流行框架,用于开发企业级应用程序。本脚本可以在Linux服务器上部署Spring Boot应用,并通过一个脚本实现启动、停止、重启等操作,本脚本由博主亲自编写和测试没问题,请方式使用。

步骤1: 准备环境

确保你的Linux服务器上已经安装了合适版本的Java。通过运行java -version来验证。

步骤2: 上传你的JAR文件

将你的Spring Boot应用的JAR文件上传到服务器上的某个目录,例如/opt/myapp/myapp.jar

步骤3: 创建管理脚本

Linux服务器上创建一个新文件,例如szxblog.sh,并粘贴以下内容:

#!/bin/bash

# 公共路径
BASE_PATH="/usr/local/java/jar/api-service"

# 应用名称(就是jar包名称,不包含后缀)
JAR_NAME="api-service"

# 定义JAR文件的路径
JAR_PATH="$BASE_PATH/$JAR_NAME.jar"

# 1.定义Java虚拟机的选项,初始化值大小需要一样,减少fu gc频率,降低波动
# 2.添加-XX:+HeapDumpOnOutOfMemoryError参数
JAVA_OPTS="-Xms2048m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"

# 定义PID文件的路径 自定义用法
PID_PATH="/usr/local/java/jar/api-service/$JAR_NAME.pid"

# 定义日志文件的路径
LOG_PATH="$BASE_PATH/$JAR_NAME.log"

start() {
  # 检查是否已运行
  if [ -f $PID_PATH ] && ps -p $(cat $PID_PATH) > /dev/null; then
    echo "应用程序已经在运行。"
    exit 0
  fi

  # 启动应用
  echo "开始启动应用程序"
  nohup java $JAVA_OPTS -jar $JAR_PATH > $LOG_PATH 2>&1 &
  echo $! > $PID_PATH

  # 检查应用是否启动
  sleep 5 # 等待一些秒来确保应用有时间启动
  if ps -p $(cat $PID_PATH) > /dev/null; then
    echo "应用程序启动成功."
  else
    echo "应用程序启动失败."
    exit 1
  fi
}

stop() {
  # 检查是否正在运行
  if [ ! -f $PID_PATH ] || ! ps -p $(cat $PID_PATH) > /dev/null; then
    echo "应用程序没有在运行。"
    exit 0
  fi

  # 停止应用
  echo "开始停止应用程序."
  SIGNAL=${2:-15} # 默认信号是SIGTERM (15),除非指定了其他信号
  kill -${SIGNAL} $(cat $PID_PATH)
  rm $PID_PATH
  echo "应用程序已停止成功."
}

restart() {
  SIGNAL=${1:-15} # 使用第一个参数作为停止信号,默认为SIGTERM (15)
  stop $SIGNAL
  start
}

# 基于命令行参数执行相应操作
case $1 in
  start)
    start
    ;;
  stop)
    stop $2
    ;;
  restart)
    restart $2  # 仅传递停止信号给restart函数
    ;;
  *)
    echo "用法: $0 {start|stop|restart} [信号]"
    exit 1
    ;;
esac

# 使用命令示例:
# 启动应用: ./script.sh start
# 停止应用: ./script.sh stop
# 重启应用: ./script.sh restart

请确保修改JAR_PATHJAVA_OPTSPID_PATHLOG_PATH等变量的值,以匹配你的具体情况。

步骤4: 赋予脚本执行权限

在终端中,导航到脚本所在的目录,并运行以下命令赋予执行权限:

chmod +x szxblog.sh

步骤5: 使用脚本管理应用

你现在可以使用以下命令来启动、停止和重启你的Spring Boot应用:

  • 启动: ./szxblog.sh start
  • 停止: ./szxblog.shh stop
  • 重启: ./szxblog.sh restart

结论

这个脚本提供了一个简单而强大的方法来管理你的Spring Boot应用程序。通过修改几个关键的变量,你可以轻松地将其适应到你自己的项目中。

Last modification:February 24, 2024
如果觉得这篇技术文章对你有用,请随意赞赏