【Spring Boot】如何在Linux系统中快速启动Spring Boot的jar包

  1. 在Linux系统中先安装java的JDK
    1. 【Spring Boot】如何在Linux系统中快速启动Spring Boot的jar包_第1张图片
  2. 然后编写下列service.sh脚本,并根据自己的需求只需要修改export的log_path、exec_cmd参数即可
    1. # 配置运行日志输出的路径
      export log_path=/usr/local/project/study-pro/logs
      # 当前服务运行的脚本命令
      export exec_cmd="nohup /usr/local/project/openjdk-8/bin/java -jar /usr/local/project/study-pro/study-pro-0.0.1-SNAPSHOT.jar"
      # 获取脚本所在的目录
      CUR_DIR=$(dirname $0)
      # 进入到该目录运行,这样可以规避绝对路径的问题,你的脚本迁移到任何目录都可以正常运行
      cd ${CUR_DIR}
      
      # 该函数running正常退出,not running则退出非0值
      check_server_is_running() {
          [[ ! -f "pid" ]] && touch pid
          
          # 获取
          PID=$(cat pid)
          
          # 首先判断pid是否存在
          if [ "${PID}" = "" ]
          then
              echo "server is not running."
              return 1
          fi
          
          # 再判断指定的PID是否在当前目录运行,防止因历史异常原因遗留了失效PID,正好该PID又被其他进程占用,造成误杀。
          if [[ -d /proc/${PID}/cwd ]] && ls -ahl /proc/${PID}/cwd | grep -q "${CUR_DIR}"
          then
              echo "server is running."
              return 0
          else
              # 清空失效的进程号并异常退出
              echo "" > pid
              return 1
          fi
      }
      
      start() {
          # 启动前判断日志目录是否存在,不存在就创建
          [[ ! -d "${log_path}" ]] && mkdir -p ${log_path}
          
          # 启动服务
          ${exec_cmd} > ${log_path}/start.log 2>&1 &
          
          # 保存PID,以供stop使用
          PID=$!
          echo "server start succ, PID=${PID}!"
          echo "${PID}" > pid
      }
      
      
      
      stop() {
          # get pid
          PID=$(cat pid)
          kill -9 ${PID}
      }
      
      
      case C"$1" in
          Cstart)
              # ||:前一个运行失败后,才运行后面一个脚本。单进程执行。若遇到第一个执行成功的脚本后,后面的脚本不再执行。
              check_server_is_running || start
              echo "start done."
              ;;
          Cstop)
              # &&:前一个运行成功后,才运行下一个。单进程执行,若中途某个脚本执行报错,后面的脚本不再执行
              check_server_is_running && stop
              echo "stop done."
              ;;
          Crestart)
              check_server_is_running && stop 
              check_server_is_running || start 
              echo "restart done."
              ;;
          C*)
              echo "Usage: $0 {start|stop|restart}"
              ;;
      esac
      
  3. 如果脚本没有可执行权限,需要先赋权再执行命令
    1. chmod -R +x service.sh
    2. 【Spring Boot】如何在Linux系统中快速启动Spring Boot的jar包_第2张图片
  4. 在脚本的目录中执行下列命令即可正常运行、停止、重启相应的Spring Boot服务
    1. 执行脚本 说明
      ./service.sh start 服务启动
      ./service.sh stop 服务停止
      ./service.sh restart 服务重启
  5. 当前示例执行服务启动命令,可以看出服务已经可以正常启动并访问了
    1. ./service.sh start

你可能感兴趣的:(spring,boot,linux,java,linux,jar,spring,boot)