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秒,保证应用确实正常停止后再启动
以上文章是从网上复制的 原文地址:https://www.cnblogs.com/linkstar/p/9815097.html ,感谢作者。