SpringBoot学习(番外篇一)------使用shell命令或bat文件优雅启动SpringBoot项目

本文介绍如何使用Shell脚本和Bat脚本在Linux和Windows Server上优雅地启动和关闭SpringBoot项目,包括多命令脚本和单命令脚本的实现。

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

SpringBoot学习(番外篇)------使用shell命令或bat文件优雅启动SpringBoot项目

前言

在之前的博文中,我们一起探究了SpringBoot的使用以及和通用的技术栈进行整合,使用SpringBoot开发确实非常的便利.那么我们在开发完成了SpringBoot应用,并打包成jar以后,就要在Linux或者Windos Server服务器部署,一般来说我们可以使用java -jar xxxxx.jar的方式来运行,但是这样做显的很不专业.在本篇博文中,我们将使用shell脚本的方式来部署SpringBoot应用.

正文

首先我们有一个已经打包好的SpringBoot的jar包:

laojunshan-demo-0.0.1-SNAPSHOT.jar

下面将通过linux和windos两个不同的服务器来说明

Linux(CentOS)
1. 使用两个shell脚本来启动和关闭

在linux下,我们可以通过shell脚本的方式来优雅的启动或者关闭SpringBoot应用.

首先,我们将应用的jar包上传到服务器的指定目录,这里我将其上传到/opt/laojunshan这个目录下.

现在我们来开始编写shell脚本:

  1. 使用vim命令创建一个shell脚本文件

    #创建一个脚本文件,如果文件已经存在,则打开该文件
    vim start.sh
    
  2. start.sh文件中输入脚本内容:

    下面命令中的log.out代表将控制台的日志输出到当前目录下.

    #!/bin/bash
    nohup java -jar laojunshan-demo-0.0.1-SNAPSHOT.jar log.out 2>&1 &
    

    保存退出,一个启动的shell脚本就完成啦!

  3. 用同样的方式创建并编写一个关闭的shell脚本

    #创建一个关闭应用的脚本
    vim stop.sh
    

    stop.sh脚本的内容如下:

    #!/bin/bash
    PID=$(ps -ef | grep laojunshan-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
    if [ ${PID} ];
    then
        echo 'Application is stpping...'
        echo kill $PID DONE
        kill $PID
    else
        echo 'Application is already stopped...'
    fi
    
  4. 完成了以上步骤以后,我们可以看到,两个shell脚本是灰色的:

    在这里插入图片描述

    此时我们的脚本还是不能用的,必须要给两个脚本相应的执行权限,我们通过下面的命令来给两个脚本权限:

    #使脚本具有执行权限
    chmod +x ./start.sh
    chmod +x ./stop.sh
    

    赋予权限以后的shell脚本就变成了绿色:

    在这里插入图片描述

  5. 运行shell脚本

    现在我们的shell脚本都写完了,下面就可以通过shell脚本来优雅的启动springboot应用了

    #启动springboot的jar
    ./start.sh
    

    运行这个命令以后,会出现如下界面:

    在这里插入图片描述

    说明程序已经运行了,这个时候光标还是在运行状态的,我们可以ctrl+c来跳出,此时程序还是在后台运行的.

  6. 访问项目验证

    在这里插入图片描述

  7. 优雅关闭SpringBoot应用

    如果要关闭应用,就字节可以使用stop.sh脚本来关闭

    #关闭应用
    ./stop.sh
    

    可以看到应用被杀死了:

    在这里插入图片描述

2. 使用一个shell脚本来启动和关闭项目

如果你以为以上的方式已经很优雅了,那就错了,下面我们来通过一个shell脚本进行应用的状态查询,启动以及结束.

需要创建的shell脚本的命令如下:

#!/bin/sh
## java env
export JAVA_HOME=/opt/java/jdk1.8.0_191
export JRE_HOME=$JAVA_HOME/jre

API_NAME=laojunshan-demo-0.0.1-SNAPSHOT
JAR_NAME=$API_NAME\.jar
#PID  代表是PID文件
PID=$API_NAME\.pid

#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

以上脚本在使用的时候要修改一下两个地方:

  1. JDK的位置修改成你自己服务器的位置
  2. API_NAME的值要修改成jar应用的名字
  3. 别忘了赋予脚本权限

编写并且赋权以后,还是在jar目录下运行脚本:

#查看应用状态
sh laojunshan.sh status
#启动应用
sh laojunshan.sh start
#关闭应用
sh laojunshan.sh stop
#重启应用
sh laojunshan.sh restart

运行以上命令就可以对应用进行自由的启动和关闭…

Windows Server下使用bat脚本启动关闭应用

有的时候,服务器不一定是linux环境,如果是Windos Server服务器,我们也可以使用bat叫本来对服务进行启动和关闭

如果在Windos下使用sh脚本也是可以的,不过要安装git才可以哦

1. 运行后出现窗口,窗口关闭后服务关闭

脚本如下:

@echo off
java -jar xxxxxx.jar
@pause

这种方式启动的时候,会有个DOS窗口一直存在,如果关闭了窗口,对应的java服务也就关闭了

2. 运行后没有窗口,服务在后台启动,关闭需要结束对应的进程

脚本如下:

@echo off
set path=D:\JAVA\jdk1.8.0_40\jre\bin
START "laojunshan" "%path%\javaw" -jar xxxxxx.jar
pause

这个脚本需要指定JDK路径,修改jar名称以后,运行脚本,窗口会关闭,但是服务是不会关闭的.要关闭服务,只需要在任务管理器关闭对应的进程(一般是java进程)

总结

以上就是SpringBoot引用在服务器部署的shell脚本和bat脚本,记录在这里,以后用的时候可以回来看看…

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值