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

这个脚本有三个作用:

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

到此这篇关于SpringBoot应用线上重启脚本的文章就介绍到这了,更多相关SpringBoot重启脚本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux编辑启动、停止与重启springboot jar包脚本实例

    前言 springboot的配置文件中,配置文件的名字都有各自的意义跟用途 dev 开发环境 prod 生产环境(默认) test 测试环境 加载指定配置文件 --spring.profiles.active=prod springboot加载jar包的方式有 // 直接在控制台进行启动,缺点就是控制台关闭项目也就关闭了. java -jar bootdo.jar // 这种方式可以运行在后台,但是如果推出了shell的话,那也会挂 java -jar /bootdo-2.0.0.jar > b

  • SpringBoot项目执行脚本 自动拉取最新代码并重启的实例内容

    gitPullThenRestart.sh # 日期: 20191230 # 作者: 何鹏举 # 说明: 项目部署在阿里云上, 每次编译打包上传比较麻烦, 因此编写此脚本, 用于应用内可以点击按钮进行自动重启. # 备注: 1) 阿里云的插件也是需要每次上传到OSS再启动, 上传的jar包比较大(大部分是第三方依赖), 感觉不好 # 2) 使用jenkins, 就一个项目再去搭建一套jenkins, 必要性也不是很大 # 以下代码中 /root/hekele 为git clone的项目路径, /

  • SpringBoot应用线上重启脚本的命令详解

    查找应用进程PID 杀死应用进程PID 运行启动脚本 烦不烦啊,像我这么懒得人 得想个办法一步搞定! 如下所示 新建一个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 '{

  • LINUX重启MYSQL的命令详解

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3.使用 safe_mysqld 启动:safe_mysqld& 二.停止 1.使用 service 启动:service mysqld stop 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3. mysqladmin shutdown 三.重启 1.

  • LINUX启动/重启/停上MYSQL的命令(详解)

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3.使用 safe_mysqld 启动:safe_mysqld& 二.停止 1.使用 service 启动:service mysqld stop 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3.mysqladmin shutdown 三.重启 1.使用

  • 解决java web应用线上系统偶发宕机的情况

    前言: 事情是酱紫的,系统上线两个月后,风平浪静.在一个秋天宁静的下午,老衲正喝着茶听着歌敲着代码,顺便欣赏下妹纸,独享这难得的惬意.突然手机响了,一看来电,心中一沉,项目经理来电,必有蹊跷.匆忙接起电话,没有问候,直奔主题,"赶紧看下系统,个别客户反馈系统不能用了,先恢复系统,再排查问题". 老衲撂下电话,一哆嗦,赶紧连上VPN,直奔服务器主机. PS:三台服务器(centos.128G内存.32核CPU),tomcat1.7,jdk1.8,通过F5负载 解决步骤: 1.top命令查

  • Android进阶Handler应用线上卡顿监控详解

    目录 引言 1 Handler消息机制 1.1 方案确认 1.2 Looper源码 1.3 Blockcanary原理分析 1.4 Handler监控的缺陷 2 字节码插桩实现方法耗时监控 2.1 字节码插桩流程 2.2 引入ASM实现字节码插桩 2.3 Blockcanary的优化策略 引言 在上一篇文章中# Android进阶宝典 -- KOOM线上APM监控最全剖析,我详细介绍了对于线上App内存监控的方案策略,其实除了内存指标之外,经常有用户反馈卡顿问题,其实这种问题是最难定位的,因为不

  • linux awk时间计算脚本及awk命令详解

    在linux如果计划时间是个麻烦事, 用awk脚本如下 BEGIN {FS=":";OFS=":"} {total_seconds=total_seconds+$3} total_seconds>=60 {total_seconds=total_sconds-60 $2=$2+1 } {total_minutes=total_minutes+$2 $2=$2+1 } {total_minutes=total_minutes+$2} total_minutes&

  • gitee命令行上传项目的步骤详解

    1.注册gitee账户 2.登录gitee新建个仓库,用来存放项目 3.找到需要上传的项目,右键,git bash here 这里需要先去官网下载安装git git官网 4.git init命令在当前文件夹下创建一个本地仓库 5.git remote add origin 远程仓库地址 6.对需要上传的项目添加追踪,git add .代表当前文件夹下的所有文件都添加追踪 git add "项目名" 单独给某个项目添加追踪 7.先提交到本地仓库 git commit -m "提

  • SpringBoot+微信小程序实现文件上传与下载功能详解

    目录 1.文件上传 1.1 后端部分 1.2 小程序前端部分 1.3 实现效果 2.文件下载 2.1 后端部分 2.2 小程序前端部分 2.3 实现效果 1.文件上传 1.1 后端部分 1.1.1 引入Apache Commons FIleUpload组件依赖 <!--文件上传与下载相关的依赖--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fil

  • BAT批处理之文件与文件夹操作代码(附xcopy命令详解)

    批处理中的文件.文件夹操作,xcopy命令的用法. 一,建bat文件自动执行复制,删除命令. 例1:复制cd.dll文件至windows\system32的bat文件内容: 复制代码 代码如下: copy cd.dll %windir%\system32 例2:卸载windows\system32目录中的cd.dll,即把上面复制的文件删除: 复制代码 代码如下: del %windir%\system32\cd.dll 例3:删除download文件夹中的文件,例子如下: 复制代码 代码如下:

  • linux 下的yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

随机推荐