shell管理多个jar包脚本

项目要求:

有多个jar要启动,启动参数也各不相同,根据配置文件来启动或不启动指定的jar包。

根据 https://blog.youkuaiyun.com/zk0920zk/article/details/79253950 里的脚本,

改良如下:

#! /bin/sh

# 系统模块
MODULES=(amap baidu superMap alarm gps lock tcpgw)
# 系统模块名称
MODULE_NAMES=(高德地图后台 百度地图后台 超图地图后台 告警 GPS数据存储 锁状态处理 网关)
# jar包数组
JARS=(admin-1.2-amap.jar admin-1.2-baidu.jar admin-1.2-superMap.jar alarm-1.2-SNAPSHOT.jar gps-1.2-SNAPSHOT.jar lock-monitor-1.2-SNAPSHOT.jar tcpgw-1.0.1.jar)
# 运行目录
PWD=$(cd $(dirname $0); pwd)
# jar包路径
JAR_PATH="$PWD/jar"
# 日志路径
LOG_PATH="$PWD/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
    skip=0
    MODULE=${MODULES[$i]}
    MODULE_NAME=${MODULE_NAMES[$i]}
    JAR_NAME=${JARS[$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
        printf "%12s\t%-24s\t已经运行\tPID=%d\n" $MODULE $MODULE_NAME $PID
      else
        case $MODULE in
        gps)
          exec nohup java -Djava.library.path=/usr/local/taos/driver/ -jar $JAR_PATH/$JAR_NAME > $LOG_PATH/$MODULE.log 2>&1 &
        ;;
        tcpgw)
          fileD=${PWD}/jar/config/application.yml
          start_line=`grep "rabbitmq" $fileD -n| awk -F: '{print $1}'`
          end_line=`grep "redis" $fileD -n| awk -F: '{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值