首页 > 其他分享 >bash脚本批量启动停止jar包

bash脚本批量启动停止jar包

时间:2022-11-18 13:45:59浏览次数:53  
标签:NAME 批量 jar PID MODULE echo local bash

#!/bin/sh
# 端口号
PORTS=(10086 83 8085 8088 8900 8087 8089)
# 系统模块
MODULES=(registry gateway user welco wisdom auth resources)
# 系统模块名称
MODULE_NAMES=(注册中心模块 网关模块 UserApplication welcoApplication WisdomApplication AuthApplication ResourcesApplication)
# jar包数组
JARS=(registry-1.0.0-SNAPSHOT.jar gateway-1.0.0-SNAPSHOT.jar user-service-1.0.0-SNAPSHOT.jar welco-service-1.0.0-SNAPSHOT.jar wisdom-service-1.0.0-SNAPSHOT.jar auth-center-1.0.0-SNAPSHOT.jar resources-service-1.0.0-SNAPSHOT.jar)
# jar包路径
JAR_PATH='/usr/local/jar/jfw3.0'
# 日志路径
LOG_PATH='/usr/local/jar/jfw3.0/data'
start() {
local MODULE=
local MODULE_NAME=
local JAR_NAME=
local command="$1"
local commandOk=0
local count=0
local okCount=0
local port=0
for((i=0;i<${#MODULES[@]};i++))
do
MODULE=${MODULES[$i]}
MODULE_NAME=${MODULE_NAMES[$i]}
JAR_NAME=${JARS[$i]}
PORT=${PORTS[$i]}
if [ "$command" == "all" ] || [ "$command" == "$MODULE" ];then
commandOk=1
count=0
PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
if [ -n "$PID" ];then
echo "$MODULE---$MODULE_NAME:已经运行,PID=$PID"
else
exec nohup java -Xms64m -Xmx128m -jar $JAR_PATH/$JAR_NAME --spring.profiles.active=dev >> $LOG_PATH/$MODULE.txt &
PID=`netstat -apn | grep $PORT | awk '{print $7}' | cut -d/ -f 1`
while [ -z "$PID" ]
do
if (($count == 30));then
echo "$MODULE---$MODULE_NAME:$(expr $count \* 10)秒内未启动,请检查!"
break
fi
count=$(($count+1))
echo "$MODULE_NAME启动中.................."
sleep 10s
PID=`netstat -apn | grep $PORT | awk '{print $7}' | cut -d/ -f 1`
done
okCount=$(($okCount+1))
echo "$MODULE---$MODULE_NAME:已经启动成功,PID=$PID"
fi
fi
done
if(($commandOk == 0));then
echo "第二个参数请输入:sms|hosp|oss|cmn"
else
echo "............本次共启动:$okCount个服务..........."
fi
}

stop() {
local MODULE=
local MODULE_NAME=
local JAR_NAME=
local command="$1"
local commandOk=0
local okCount=0
for((i=0;i<${#MODULES[@]};i++))
do
MODULE=${MODULES[$i]}
MODULE_NAME=${MODULE_NAMES[$i]}
JAR_NAME=${JARS[$i]}
if [ "$command" = "all" ] || [ "$command" = "$MODULE" ];then
commandOk=1
PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
if [ -n "$PID" ];then
echo "$MODULE---$MODULE_NAME:准备结束,PID=$PID"
kill -9 $PID
PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
while [ -n "$PID" ]
do
sleep 3s
PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
done
echo "$MODULE---$MODULE_NAME:成功结束"
okCount=$(($okCount+1))
else
echo "$MODULE---$MODULE_NAME:未运行"
fi
fi
done
if (($commandOk == 0));then
echo "第二个参数请输入:sms|hosp|oss|cmn"
else
echo "............本次共停止:$okCount个服务............"
fi
}


case "$1" in
start)
start "$2"
;;
stop)
stop "$2"
;;
restart)
stop "$2"
sleep 3s
start "$2"
;;
*)
echo "第一个参数请输入:start|stop|restart"
exit 1
;;
esac

标签:NAME,批量,jar,PID,MODULE,echo,local,bash
From: https://www.cnblogs.com/liftsail/p/16902932.html

相关文章

  • 两个.bashrc文件配置问题
    目录​​问题:​​​​解决办法:​​当我用fireflyrk3328开发板用ros进行主从机通讯的时候,需要更改.bashrc文件的配置进行主从机通讯,但是却发现有两个.bashrc文件,那么该如何......
  • 使用Python批量对文本文件编码互转
    在Windows下写C语言默认是GB2312,放到Linux上就会乱码,因为Linux和MacOS默认是UTF-8,因此写了个Python小脚本对指定路径下的文件进行转换。fromsysimportargvimportosf......
  • 3dmax批量做窗户
    1、边模式分割2、面模式插入3、面模式挤出4、贴图5、添加UVW贴图修改器6、塌陷......
  • vue后台管理系统"批量删除"书写逻辑
    先上代码: 首先在整体el-table表格中添加@selection-change="SelectTableList"点击事件,这个主要的作用就是当表格被点击时,会调用这个函数;  然后再表格el-table......
  • 数据库进行批量插入
    数据库如何进行批量插入什么是批量插入批量插入是一种优化数据逐条插入的方式1、批量插入的常见方式全字段批量插入:insertinto表名values(值列表1),(值列表2)...(......
  • Python爬虫实战:批量爬取百度图片
    众所周知,某度本身就是最大的爬虫脚本,那么纯纯的去某个网站找壁纸,还不如去某度图片直接找,瞬间格局打开!话不多说,直接用Python来开发一下此处资源!开发环境&第三方模......
  • jar包加密启动
    jar包加密启动参考文档:https://gitee.com/roseboy/classfinaljava-jarclassfinal-fatjar-1.2.1.jar-fileD:\xxx.jar-libjarsxxx.jar-packagescom.xxx-pwd#-Y......
  • WPS宏编辑器批量设置word中表格样式
    设置表格占用宽度比例并自适应页面宽度/***表格自适应*/functiontableAutoFitWindow(){ varcount=ActiveDocument.Tables.Count; for(i=1;i<=count;i......
  • 批量导入图片--Excel与zip压缩包
    导入excel和图片其实很简单,就是导入包与调用几个简单的方法,主要对接业务操作比较繁琐。在excel中填入图片的名称(不用带后缀)  对应的zip包导入依赖<!--zip......
  • 厉害了!不懂自动化运维ansible你就out啦!批量部署web服务及mysql
    理论讲解step1为什么用它?提高效率。ansible可为多台服务器进行管理,自动部署服务,专为Unix系统开发的自由开源的配置和自动化工具。step2温馨提示:优点太多,就不一一介绍完啦......