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 "33[31m Not running 33[0m" 
    else
        echo -e "33[32m Running [$appId] 33[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秒,保证应用确实正常停止后再启动

 

以上文章是从网上复制的 原文地址:https://www.cnblogs.com/linkstar/p/9815097.html ,感谢作者。

原文地址:https://www.cnblogs.com/liuxm2017/p/10058794.html