其他分享
首页 > 其他分享> > SpringBoot应用线上重启脚本

SpringBoot应用线上重启脚本

作者:互联网

  1. 查找应用进程PID
  2. 杀死应用进程PID
  3. 运行启动脚本

烦不烦啊,像我这么懒得人 得想个办法一步搞定!

如下所示 新建一个shell脚本,然后将其运行之!

#!/bin/sh
#根据进程名杀死进程
if [ $# -lt 1 ]
then
  echo "需要传入jar包的名称!"
  exit 1
fi
# 根据输入的应用名,找出指定的应用的进程Id
PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|grep -v /bin/sh|awk '{print $2}'`
#echo "$PROCESS"
# 然后打印杀死的进程的Id
if [ -z "$PROCESS" ]
 then echo "当前程序没有在运行,即将首次启动!"
else
# 然后打印杀死的进程的Id
 echo "当前正在运行应用的进程PID: $1 process [ ${PROCESS[0]} ]"
 kill -9 $PROCESS
 echo "进程已杀死,3秒后重启!"
 sleep 3s
fi
# 启动应用
echo "========启动中========"
nohup java -jar $1 >/dev/null 2>&1 &
sleep 3s
# 根据输入的应用名,找出指定的应用的进程Id
PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|grep -v /bin/sh|awk '{print $2}'`
echo "启动成功,新的进程PID:$PROCESS"
exit 1

脚本格式:文件名  应用名,例如:restart_application.sh rourou.jar

这个脚本有三个作用:

  1. 首次启动运行即可,第一次叫启动,使用方式:restart_application.sh rourou.jar,其中restart_application.sh是自己新建的脚本文件名称,rourou.jar是自己的应用
  2. 重启应用直接运行即可,使用方式:restart_application.sh rourou.jar,其中restart_application.sh是自己新建的脚本文件名称,rourou.jar是自己的应用
  3. 如果没有传入应用的名称,会显示需要传入jar包的名称!

linux菜鸡一只,如果写的不好,请多多指教。

 

标签:grep,SpringBoot,PROCESS,重启,jar,echo,sh,线上,应用
来源: https://www.cnblogs.com/yanyan-rourou/p/16433402.html