consume.sh 2.8 KB
Newer Older
P
plum-lihui 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
#!/bin/bash

##################################################
#
# Do tmq test
#
##################################################

set +e

# set default value for parameters
EXEC_OPTON=start
DB_NAME=db 
P
plum-lihui 已提交
14
CDB_NAME=db
P
plum-lihui 已提交
15 16 17
POLL_DELAY=5
VALGRIND=0
SIGNAL=SIGINT
P
plum-lihui 已提交
18 19
SHOW_MSG=0
SHOW_ROW=0
P
plum-lihui 已提交
20

P
plum-lihui 已提交
21
while getopts "d:s:v:y:x:g:r:w:" arg
P
plum-lihui 已提交
22 23 24 25 26
do
  case $arg in
    d)
      DB_NAME=$OPTARG
      ;;
P
plum-lihui 已提交
27 28 29 30 31 32
    g)
      SHOW_MSG=$OPTARG
      ;;
    r)
      SHOW_ROW=$OPTARG
      ;;
P
plum-lihui 已提交
33 34 35 36 37 38 39 40 41 42 43 44
    s)
      EXEC_OPTON=$OPTARG
      ;;
    v)
      VALGRIND=1
      ;;
    y)
      POLL_DELAY=$OPTARG
      ;;
    x)
      SIGNAL=$OPTARG
      ;;
P
plum-lihui 已提交
45 46 47
    w)
      CDB_NAME=$OPTARG
      ;;
P
plum-lihui 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
    ?)
      echo "unkown argument"
      ;;
  esac
done

SCRIPT_DIR=`pwd`

IN_TDINTERNAL="community"
if [[ "$SCRIPT_DIR" == *"$IN_TDINTERNAL"* ]]; then
  cd ../../..
else
  cd ../../
fi

TOP_DIR=`pwd`

if [[ "$SCRIPT_DIR" == *"$IN_TDINTERNAL"* ]]; then
  BIN_DIR=`find . -name "tmq_sim"|grep bin|head -n1|cut -d '/' -f 2,3`
else
  BIN_DIR=`find . -name "tmq_sim"|grep bin|head -n1|cut -d '/' -f 2`
fi

declare -x BUILD_DIR=$TOP_DIR/$BIN_DIR

declare -x SIM_DIR=$TOP_DIR/sim

PROGRAM=$BUILD_DIR/build/bin/tmq_sim

PRG_DIR=$SIM_DIR/tsim
CFG_DIR=$PRG_DIR/cfg
LOG_DIR=$PRG_DIR/log

echo "------------------------------------------------------------------------"
echo "BUILD_DIR: $BUILD_DIR"
echo "SIM_DIR  : $SIM_DIR"
echo "CFG_DIR  : $CFG_DIR"


echo "PROGRAM: $PROGRAM
echo "CFG_DIR: $CFG_DIR 
echo "POLL_DELAY: $POLL_DELAY 
echo "DB_NAME: $DB_NAME

echo "------------------------------------------------------------------------"
if [ "$EXEC_OPTON" = "start" ]; then 
  if [ $VALGRIND -eq 1 ]; then
P
plum-lihui 已提交
95 96
    echo nohup valgrind --tool=memcheck --leak-check=full --show-reachable=no --track-origins=yes --show-leak-kinds=all -v --workaround-gcc296-bugs=yes --log-file=${LOG_DIR}/valgrind-tmq_sim.log $PROGRAM -c $CFG_DIR -y $POLL_DELAY -d $DB_NAME -g $SHOW_MSG -r $SHOW_ROW > /dev/null 2>&1 &
    nohup valgrind --tool=memcheck --leak-check=full --show-reachable=no --track-origins=yes --show-leak-kinds=all -v --workaround-gcc296-bugs=yes --log-file=${LOG_DIR}/valgrind-tmq_sim.log $PROGRAM -c $CFG_DIR -y $POLL_DELAY -d $DB_NAME -g $SHOW_MSG -r $SHOW_ROW > /dev/null 2>&1 &
P
plum-lihui 已提交
97
  else
P
plum-lihui 已提交
98 99
    echo  "nohup $PROGRAM -c $CFG_DIR -y $POLL_DELAY -d $DB_NAME -g $SHOW_MSG -r $SHOW_ROW -w $CDB_NAME > /dev/null 2>&1 &"
    nohup $PROGRAM -c $CFG_DIR -y $POLL_DELAY -d $DB_NAME -g $SHOW_MSG -r $SHOW_ROW -w $CDB_NAME > /dev/null 2>&1 &
P
plum-lihui 已提交
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
  fi
else
  PID=`ps -ef|grep tmq_sim | grep -v grep | awk '{print $2}'`
  while [ -n "$PID" ]
  do
    if [ "$SIGNAL" = "SIGKILL" ]; then
      echo try to kill by signal SIGKILL
      kill -9 $PID
    else
      echo try to kill by signal SIGINT
      kill -SIGINT $PID
    fi
    sleep 1
    PID=`ps -ef|grep tmq_sim | grep -v grep | awk '{print $2}'`
  done 
fi