SpringBoot项目快速启动停止脚本

简介: SpringBoot项目快速启动停止脚本

SpringBoot项目快速启动停止脚本

1.在jar包同级目录下,创建 app.sh

#!/bin/bash
appName=`ls|grep .jar$`
if [ -z $appName ]
then
    echo "Please check that this script and your jar-package is in the same directory!"
    exit 1
fi
killForceFlag=$2
function start()
{
    count=`ps -ef |grep java|grep $appName|wc -l`
    if [ $count != 0 ];then
        echo "Maybe $appName is running, please check it..."
    else
        echo "The $appName is starting..."
        nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName > /dev/null 2>&1 &
    fi
}
function stop()
{
    appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
    if [ -z $appId ]
    then
        echo "Maybe $appName not running, please check it..."
    else
        echo -n "The $appName is stopping..."
        if [ "$killForceFlag" == "-f" ]
        then 
            echo "by force"
            kill -9 $appId
        else
            echo
            kill $appId
        fi
    fi
}
function status()
{
    appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
    if [ -z $appId ] 
    then
        echo -e "\033[31m Not running \033[0m" 
    else
        echo -e "\033[32m Running [$appId] \033[0m" 
    fi
}
function restart()
{
    stop
    for i in {3..1}
    do
        echo -n "$i "
        sleep 1
    done
    echo 0
    start
}
function usage()
{
    echo "Usage: $0 {start|stop|restart|status|stop -f}"
    echo "Example: $0 start"
    exit 1
}
case $1 in
    start)
    start;;
    stop)
    stop;;
    
    restart)
    restart;;
    
    status)
    status;;
    
    *)
    usage;;
esac


2.使用说明

app.sh脚本为快速启动应用和关闭应用的脚本,使用方法如下:

首先,将你需要发布的jar包,和含有上述内容的脚本app.sh,上传至linux服务器,注意两者必须处于同一目录,并且该目录下只有一个jar包,并给与app.sh相应执行权限,chmod 777 app.sh


然后就可以执行脚本,命令如下


命令 作用

./app.sh start 启动应用

./app.sh stop 关闭应用

./app.sh restart 重启应用

./app.sh status 查看应用状态

./app.sh stop -f 强制kill应用进程

注意,重新发布应用时,先stop再上传替换jar包哦。


脚本中可以修改的地方:

19行:nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName > /dev/null 2>&1 &

这是最终jar的启动命令,在这里你需要对gc、Xms、Xmx等针对你机器的实际情况修改,还可以添加你所需要的启动参数等。


56行:for i in {3..1}

这里是设置restart的时候等待的时间,因为有的项目在3秒之内可能没有办法正常停止,所以可以调整为5秒,保证应用确实正常停止后再启动

目录
相关文章
|
18天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
25天前
|
Java API Spring
SpringBoot项目调用HTTP接口5种方式你了解多少?
SpringBoot项目调用HTTP接口5种方式你了解多少?
80 2
|
25天前
|
前端开发 JavaScript Java
6个SpringBoot 项目拿来就可以学习项目经验接私活
6个SpringBoot 项目拿来就可以学习项目经验接私活
34 0
|
28天前
|
Java Shell
SpringBoot启动脚本Shell
SpringBoot启动脚本Shell
18 0
|
1月前
|
前端开发 Java 关系型数据库
SpringBoot+MyBatis 天猫商城项目
SpringBoot+MyBatis 天猫商城项目
57 1
|
1月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
42 0
|
28天前
|
Java Maven 微服务
springboot项目开启远程调试-jar包
springboot项目开启远程调试-jar包
20 0
|
2天前
|
Java Docker 容器
SpringBoot项目集成XXL-job
SpringBoot项目集成XXL-job
|
15天前
|
JSON 前端开发 Java
统一异常处理:让Spring Boot项目异常更优雅
统一异常处理:让Spring Boot项目异常更优雅
24 1
|
19天前
|
JSON 前端开发 Java
Springboot前后端分离项目统一封装返回结果
Springboot前后端分离项目统一封装返回结果