【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
相关推荐
莫白媛3 分钟前
Linux在限制敏感命令下的修改用户密码小白版
linux·运维·服务器
2601_9498146912 分钟前
Docker部署Spring Boot + Vue项目
vue.js·spring boot·docker
今天你TLE了吗1 小时前
LLM到Agent&RAG——AI知识点概述 第六章:Function Call函数调用
java·人工智能·学习·语言模型·大模型
Rcnhtin1 小时前
RocketMQ
java·linux·rocketmq
JH30731 小时前
RedLock-红锁
java·redis
AC赳赳老秦2 小时前
OpenClaw多平台部署:Windows+Linux跨系统协同,实现全场景覆盖
linux·服务器·前端·网络·windows·deepseek·openclaw
念恒123062 小时前
进程--程序地址空间下篇(进程地址空间)
linux·c语言
___波子 Pro Max.2 小时前
Linux 外挂 SSD 根目录下的 `.Trash-1000` 到底是什么
linux
rannn_1112 小时前
【Redis|原理篇2】Redis网络模型、通信协议、内存回收
java·网络·redis·后端·缓存
hhb_6183 小时前
Linux底层运维自动化挂载与磁盘分区实战指南
linux·运维·自动化