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

  1. 在Linux系统中先安装java的JDK

  2. 然后编写下列service.sh脚本,并根据自己的需求只需要修改export的log_path、exec_cmd参数即可
    1.

    bash 复制代码
    # 配置运行日志输出的路径
    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.

    bash 复制代码
    chmod -R +x service.sh
  4. 在脚本的目录中执行下列命令即可正常运行、停止、重启相应的Spring Boot服务
    1.

    |----------------------|------|
    | 执行脚本 | 说明 |
    | ./service.sh start | 服务启动 |
    | ./service.sh stop | 服务停止 |
    | ./service.sh restart | 服务重启 |

  5. 当前示例执行服务启动命令,可以看出服务已经可以正常启动并访问了
    1.

    bash 复制代码
    ./service.sh start
相关推荐
张火火isgudi5 小时前
fedora43 安装 nvidia 驱动以及开启视频编解码硬件加速
linux·运维·视频编解码·nvidia
.鸣5 小时前
set和map
java·学习
ha_lydms5 小时前
5、Spark函数_s/t
java·大数据·python·spark·数据处理·maxcompute·spark 函数
IT19956 小时前
Qt笔记-使用SSH2进行远程连接linux服务器并上传文件
linux·服务器·笔记
XXYBMOOO6 小时前
内核驱动开发与用户级驱动开发:深度对比与应用场景解析
linux·c++·驱动开发·嵌入式硬件·fpga开发·硬件工程
黄河滴滴6 小时前
java系统变卡变慢的原因是什么?从oom的角度分析
java·开发语言
侠客行03176 小时前
Mybatis二级缓存实现详解
java·mybatis·源码阅读
老华带你飞6 小时前
农产品销售管理|基于java + vue农产品销售管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
Edward111111117 小时前
tomcat_servlet
java·servlet·tomcat
短剑重铸之日7 小时前
SpringBoot声明式事务的源码解析
java·后端·spring·springboot