Linux—微服务启停shell脚本编写

2023-05-16

run.sh

#! /bin/sh
# 端口号
PORTS=(80)
# 模块
MODULES=(gateway)
# 模块名称
MODULE_NAMES=(网关服务)
# jar包数组
JARS=(gateway-1.0.0-SNAPSHOT.jar)
# jar包路径
JAR_PATH='/opt/general'
# 日志路径
LOG_PATH='/opt/general/logs'
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 -Xms256m -Xmx512m -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/$MODULE.log 2>&1 &
        PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
        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=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
        done
        okCount=$(($okCount+1))
        echo "$MODULE---$MODULE_NAME:已经启动成功,PID=$PID"
      fi
    fi
  done
  if(($commandOk == 0));then
    echo "第二个参数输入错误"
  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 "第二个参数输入错误"
  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

使用方式:

run.sh start

run.sh stop

run.sh restart

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux—微服务启停shell脚本编写 的相关文章

  • Kali linux 2016.2(Rolling)安装之后的常用配置

    转发 xff1a https www cnblogs com zlslch p 6047913 html 前言 使用默认的Kali Linux设置来学习是可以的 xff0c 但是我们通常要修改系统的一些基本设置 xff0c 来最大化使用Ka
  • JAVA版本:使用二分法查找数组中的数据

    使用二分法查找数组中的数据 xff1a 分析 xff1a 二分法查找适用于数据量较大时 xff0c 但是数据需要先排好顺序 主要思想是 xff1a xff08 设查找的数组区间为array low high xff09 xff08 1 xf
  • BlaBlaCar是如何解决四大挑战的?

    BlaBlaCar 是世界领先的长途拼车服务 xff0c 将汽车司机与乘客联系起来 BlaBlaCar 在 22 个国家 地区拥有 6000 万会员 xff0c 每季度有超过 1800 万旅客 xff0c 正在创建一个全新的 以人为本的旅行
  • K8S案例01

    一个简单的例子 Java Web应用 xff1a 是一个运行在 tomcat里的 Web App 如图1 1所示 xff0c JSP页面通过JDBC直接访问 MYSQL数据库并展示数据 为了演示和简化的目的 xff0c 只要程序正确连接到了
  • 【Ubuntu】修改ubuntu和windows双系统启动顺序

    目录 一 问题描述二 背景知识1 GRUB是什么2 GRUB配置文件3 96 etc default grub 96 主配置文件 二 问题分析三 解决方案1 修改grub主配置文件2 更新grub配置文件 一 问题描述 Ubuntu 43
  • OpenShift简介

    文章目录 OpenShift简介1 OpenShift是什么 xff1f OpenShift与K8S的区别1 应用部署2 应用管理3 节点配置4 安全性 2 为什么要用OpenShift xff1f 3 OpenShift的版本4 Open
  • Java 连接MariaDB

    Java应用程序连接MariaDB数据库 在本文中我们将了解到什么是JDBC驱动程序以及如何打开和安全地关闭MariaDB数据库连接 什么是 JDBC 驱动程序 xff1f JDBC 是一种 API规范 xff1a 一组定义该技术可以做什么
  • 使用 JDBC 执行 SQL 语句

    使用 JDBC 执行 SQL 语句 在上一篇文章中我们了解到什么是JDBC驱动程序以及如何打开和安全地关闭MariaDB数据库连接 接下来我们在上一篇文章的基础上学习如何使用 JDBC 对 SQL 数据库执行SELECT INSERT UP
  • 创建Redis企业版数据库的步骤

    一 Redis企业版数据库的功能 Redis Enterprise Software 允许您创建数据库并将它们分布在节点集群中 这些数据库可以使用 Redis Enterprise 功能 xff0c 例如 xff1a redis on fl
  • 关于Redis数据库,我问了ChatGPT几个问题

    最近互联网刮起了一阵ChatGPT风 xff0c 从程序猿 产品经理 运营再到大学生 xff0c 都在跟ChatGPT对话 xff01 例如 xff1a 请帮我检查这段代码的BUG 请帮我设计一款功能像虹科VUZIX一样的智能AR眼镜 虹科
  • 虹科案例 | 石油天然气行业CFD高性能计算解决方案

    公司简介 DNV GL是全球领先的能源 石油和海事行业风险管理及资产绩效提升的软件供应商 xff0c 主要为客户提供全面的风险管理和各类评估认证服务 xff0c 认证涉及信息通信技术 汽车及航空天 食品与饮料 医疗等方面 DNV GL以让世
  • 虹科干货| 虹科Redis企业版数据库:告别游戏卡顿,让快乐加速!

    卡顿一分钟 xff0c 玩家两行泪 游戏已成为年轻人最主要的消遣娱乐方式之一 xff0c 游戏卡顿给玩家带来糟糕游戏体验背后的原因是什么 xff1f 数据存储与查询速度不够快 xff01 游戏开发领域 xff0c 不仅拥有海量的数据 xff
  • 虹科干货 | 打破传统!金融界黑科技—虹科Redis企业版数据库

    金融行业数字化转型浪潮来袭 xff0c 客户需求也正加速向在线金融服务转移 金融机构想要实现现代化改造技术堆栈 xff0c 为客户提供实时交互 欺诈检测等一系列个性化创新服务 xff0c 就必须重视遗留系统和传统数据库架构 老年病 问题 x
  • 虹科干货 | 零售业数智升级不掉队,get数据,get未来!

    电商崛起 xff0c 传统零售行业危机四伏 xff0c 全渠道盈利与可持续化成为难点 xff0c 库存管理这块难啃的 硬骨头 也同样让零售商倍感压力 背腹受敌的零售商 xff0c 如何才能在数字化转型道路上避免利润缩水 xff0c 与供应商
  • 什么是网络数据包?

    流经网络的一切都可以被归类为数据包中所包含数据的一部分 一个网络数据包或IP包可以被称为一个数据单元 xff08 约1KBS至1 5KBS xff09 xff0c 在互联网或分组交换网络内从原点流向目标地址 xff08 从发送方到接收方 x
  • md5.pro.js前端MD5加密插件

    下载地址 例如我们对abc进行md5加密 xff0c 则只需要调用hex md5 34 md5 34 xff0c 方法则会返回加密后的字符串900150983cd24fb0d6963f7d28e17f72 dd
  • 02.构建项目流程梳理及总结

    02 构建项目流程梳理及总结
  • windows 下gtk字体问题

    windows下运行gtk程序 xff0c 出现如下问题 xff1a PangoWarning couldn 39 t load font 34 微软雅黑 Not Rotated 9 34 falling back to 34 Sans N
  • Ubuntu,源码安装Node.js

    Ubuntu xff0c 源码安装Node js Ubuntu Linux下安装Node js xff0c 其他linux系统步骤类似 Github获取源码 sudo git clone https github com nodejs no
  • utf-8转换到utf-16的转换过程你懂吗?

    人生自是有情痴 xff0c 此恨不关风与月 唐代元稹 离思 从UTF 8编码的文件中读取文本并将其存储到Java的String对象中 xff0c 涉及到从字节序列到Unicode码点 xff0c 再到UTF 16编码的转换 以下是详细的步骤

随机推荐

  • TP5的select,find和get查询方法的使用

    select查询出的是多条数据 xff0c 需要在模版volist循环打印出来 find和get获取单条数据 xff0c 可直接在模版打印 xff1b user 61 User get span class hljs number styl
  • 两个类相互引用的解决方法

    1 问题提出 最近在编写 斗地主 游戏 xff0c 在程序中有一个 CDealer 类用来实现发牌等等功能 xff0c 还有一个 CPoker 类 xff0c 用来表示扑克牌 在CDealer类中包含了一个CPoker类指针的成员变量 xf
  • Android Studio中修改APP图标和APP名称

    Android Studio生成的 APP默认图标是经典的机器人图标 可以通过 Android Studio实现 APP图标和名称的修改 1 修改 APP 图标 在程序对应的 AndroidMenifest xml中指定了该 APP 的图标
  • python程序设计流程(九) ---循环结构

    本文思维导图 循环结构简介 xff1a 循环结构用来重复执行一条或者多条语句 xff0c 使用循环结构可以减少源程序重复书写的工作量 许多算法需要使用到循环结构 xff0c python使用for语句和while语句来实现循环结构 1 xf
  • Flask框架安装报错问题解决

    对于flask框架安装问题解决办法 falsk框架安装的方法有很多 xff0c 一开始我通过window终端进行安装 大约前前后后安装了有近百遍 xff0c 都是报同样的错误 time out 超时的错误 换了国内的下载源还是不行 于是我准
  • Could not parse the remainder: '=' from '=' 问题解决

    Could not parse the remainder 61 from 61 问题解决 在使用django框架内置模板渲染页面时出现了Could not parse the remainder 61 from 61 的问题 弄了半天发现
  • 纯css3炫酷科技感菜单

    下载地址 一款样式炫酷的旋转导航菜单 xff0c 纯css3代码实现的炫酷科技感菜单 xff0c 带css3旋转动画特效 dd
  • Linux 换源方法

    Linux 换源方法 换国内源 xff0c 最直接的就是上阿里 中科大的镜像官网 Ubuntu换国内源 sudo cp etc apt sources list etc apt sources list bak 备份原来的sorce文件su
  • (535, b'Login Fail. Please enter your authorization code to login. More information in http://servic

    535 b Login Fail Please enter your authorization code to login More information in http service mail qq com cgi bin help
  • django 网页获取访问者的IP地址及用户名

    django获取访问网页的电脑ip地址及用户名 1 先创建模型 class span class token function Viewip span span class token punctuation span models Mod
  • [Errno 5] Input/output error

    Errno 5 Input output error django上线项目报此错误 经过检查是将views py里的无用的print语句给注释掉就ok了 xff01
  • python中文数字转换为阿拉伯数字

    python中文数字转换为阿拉伯数字 中文数字与阿拉伯数字转换 只能转数字 传参中包含非数字会错 def zhuanhuan str zhong 61 39 零 39 0 39 一 39 1 39 二 39 2 39 三 39 3 39 四
  • Ajax通用数据提交

    Ajax通用数据提交 用于登录注册 xff0c 以及文字的添加 span class token punctuation span ajax span class token punctuation span span class toke
  • 利用scrapy框架获取全国的房价数据

    利用scrapy框架获取全国的房价数据 1 首先这里我是利用scrapy框架来进行爬取的 scrapy框架的使用可谓是既简单效率又高 xff0c 下面来一起爬取 2 直接上代码 xff1a span class token keyword
  • 2021-10-12

    入行两年感慨 xff1a 不知不觉间 xff0c 踏入程序员行业已有两年的时间 xff0c 两年时间说长不长说短也不是很短 xff0c 这两年内 xff0c 我的技术得到了不少的提升 从当初的小白渐渐入了门 先自我说明 xff1a 本人19
  • ubuntu安装chrome浏览器

    1 准备好linux版本的chrome xff0c 下载网址 xff1a https www chromedownloads net chrome64linux 可以通过xshell将本地下载好的上传服务器 xff0c 文件后缀为 deb
  • 7年厨师想转行程序员

    7年厨师想转行 xff0c 跟我学java 可是工资只有7千我惊呆了 xff0c 我还以为7年厨师工资至少1万多呢 看来每个行业都有工资高也有工资低的 xff0c 他可能属于厨师里工资低的吧
  • 什么是项目干系人(project stakeholder)?

    stakeholder理论起源于企业管理领域 xff0c 最早由斯坦福大学在20世纪60年代提出 xff0c 到20世纪年代80年代逐步发展完善 xff0c 成为公司治理和权益保护的理论依据 美国经济学家弗里曼给出的stakeholder定
  • Decoupling GCN with DropGraph Module for Skeleton-Based Action Recognition

    Decoupling GCN with DropGraph Module for Skeleton Based Action Recognition 原文地址 xff1a https www ecva net papers eccv 202
  • Linux—微服务启停shell脚本编写

    run sh bin sh 端口号 PORTS 61 80 模块 MODULES 61 gateway 模块名称 MODULE NAMES 61 网关服务 jar包数组 JARS 61 gateway 1 0 0 SNAPSHOT jar