linux 启动 spring boot .jar项目 .sh 脚本

本文介绍了如何在Linux环境下通过.sh脚本启动、重启、停止Spring Boot项目。包括run.sh、start.sh、restart.sh和kill.sh四个脚本,其中run.sh会自动查找当前目录的.jar文件。项目可以进行拆分部署,通过修改build配置和应用配置文件实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

run.sh 文件 启动命令 sh run.sh 

目录结构:

 这里将lib config文件都拆分打包的 不拆分的话,修改一下你的启动命令就好了

拆分部署见最底部

会自动找到当前目录中的.jar文件。所以。当前文件夹中仅允许存在一个jar包

#! /bin/bash
# springboot的jar放同级目录下即可,只能有一个jar文件
# ./run.sh: Permission denied 解决方案 chmod +x run.sh
# 启动命令 sh run.sh

AppName=test-app.jar

JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"


CURRENT_PATH=/home/shedu/shedu_sj/back/
LOG=/home/shedu/shedu_sj/back/log/console.log
JAR=$(find $CURRENT_PATH -maxdepth 1 -name "*.jar")
PID=$(ps -ef | grep $AppName | grep -v grep | awk '{ print $2 }')

if [ ! -d ${LOG} ]
       then
       echo "创建目录:${LOG} "
       echo "">${LOG}
fi

case "$1" in
    start)
        if [ ! -z "$PID" ]; then
            echo "$JAR 已经启动,进程号: $PID"
        else
            echo -n -e "启动 $JAR ... $PID \n"
        cd $CURRENT_PATH
        nohup java -jar $JVM_OPTS -Dloader.path=lib,resources,lib $AppName >$LOG 2>&1 &
            if [ "$?"="0" ]; then
                echo "启动完成,请查看日志确保成功"
            else
                echo "启动失败"
            fi
        fi
        ;;
    stop)
        if [ -z "$PID" ]; then
            echo "$JAR 没有在运行,无需关闭"
        else
            echo "关闭 $JAR ..."
              kill -9 $PID
            if [ "$?"="0" ]; then
                echo "服务已关闭"
            else
                echo "服务关闭失败"
            fi
        fi
        ;;
    restart)
        ${0} stop
        ${0} start
        ;;
    kill)
        echo "强制关闭 $JAR"
        killall $JAR
        if [ "$?"="0" ]; then
            echo "成功"
        else
            echo "失败"
        fi
        ;;
    status)
        if [ ! -z "$PID" ]; then
            echo "$JAR 正在运行"
        else
            echo "$JAR 未在运行"
        fi
        ;;
  *)
    echo "Usage: ./run.sh {start|stop|restart|status|kill}" >&2
        exit 1
esac

 start.sh 文件 启动命令 sh start.sh

#!/bin/sh
# line 3: ./run.sh: Permission denied 解决方案 chmod +x run.sh
# 启动命令 sh start.sh

./run.sh start

restart.sh文件 启动命令 sh restart.sh

#!/bin/sh

./run.sh restart

kill.sh 文件 启动命令 sh kill.sh

#!/bin/sh

./run.sh stop

拆分项目部署

修改build内的内容。然后config中的application.yml系统会优先选择你打包命令中的配置文件。如果没有则会使用你项目中的配置


    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-lib</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/lib</outputDirectory>
                            <excludeTransitive>false</excludeTransitive>
                            <stripVersion>false</stripVersion>
                            <includeScope>runtime</includeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值