exec.sh 2.5 KB
Newer Older
1
#!/bin/bash
S
slguan 已提交
2

G
Ganlin Zhao 已提交
3
# if [ $# != 4 || $# != 5 ]; then
S
slguan 已提交
4 5 6 7 8 9 10
  # echo "argument list need input : "
  # echo "  -n nodeName"
  # echo "  -s start/stop"
  # echo "  -c clear"
  # exit 1
# fi

G
Ganlin Zhao 已提交
11 12 13
UNAME_BIN=`which uname`
OS_TYPE=`$UNAME_BIN`

S
slguan 已提交
14 15 16
NODE_NAME=
EXEC_OPTON=
CLEAR_OPTION="false"
G
Ganlin Zhao 已提交
17
while getopts "n:s:u:x:ct" arg
S
slguan 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
do
  case $arg in
    n)
      NODE_NAME=$OPTARG
      ;;
    s)
      EXEC_OPTON=$OPTARG
      ;;
    c)
      CLEAR_OPTION="clear"
      ;;
    t)
      SHELL_OPTION="true"
      ;;
    u)
      USERS=$OPTARG
      ;;
    x)
      SIGNAL=$OPTARG
      ;;
    ?)
      echo "unkown argument"
      ;;
  esac
done

SCRIPT_DIR=`dirname $0`
cd $SCRIPT_DIR/../
SCRIPT_DIR=`pwd`

48 49
IN_TDINTERNAL="community"
if [[ "$SCRIPT_DIR" == *"$IN_TDINTERNAL"* ]]; then
50 51 52 53 54
  cd ../../..
else
  cd ../../
fi

S
slguan 已提交
55
TAOS_DIR=`pwd`
S
Shuduo Sang 已提交
56
TAOSD_DIR=`find . -name "taosd"|grep bin|head -n1`
S
slguan 已提交
57

G
Ganlin Zhao 已提交
58 59 60 61 62 63
if [[ "$OS_TYPE" != "Darwin" ]]; then
  cut_opt="--field="
else
  cut_opt="-f "
fi

S
Shuduo Sang 已提交
64
if [[ "$TAOSD_DIR" == *"$IN_TDINTERNAL"* ]]; then
G
Ganlin Zhao 已提交
65
  BIN_DIR=`find . -name "taosd"|grep bin|head -n1|cut -d '/' ${cut_opt}2,3`
S
Shuduo Sang 已提交
66
else
G
Ganlin Zhao 已提交
67
  BIN_DIR=`find . -name "taosd"|grep bin|head -n1|cut -d '/' ${cut_opt}2`
S
Shuduo Sang 已提交
68
fi
69

S
Shuduo Sang 已提交
70
BUILD_DIR=$TAOS_DIR/$BIN_DIR/build
71

S
slguan 已提交
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
SIM_DIR=$TAOS_DIR/sim
NODE_DIR=$SIM_DIR/$NODE_NAME
EXE_DIR=$BUILD_DIR/bin
CFG_DIR=$NODE_DIR/cfg
LOG_DIR=$NODE_DIR/log
DATA_DIR=$NODE_DIR/data
MGMT_DIR=$NODE_DIR/data/mgmt
TSDB_DIR=$NODE_DIR/data/tsdb

TAOS_CFG=$NODE_DIR/cfg/taos.cfg

echo ------------ $EXEC_OPTON $NODE_NAME

TAOS_FLAG=$SIM_DIR/tsim/flag
if [ -f "$TAOS_FLAG" ]; then 
  EXE_DIR=/usr/local/bin/taos
fi

if [ "$CLEAR_OPTION" = "clear" ]; then 
  echo rm -rf $MGMT_DIR $TSDB_DIR  
  rm -rf $TSDB_DIR
  rm -rf $MGMT_DIR
fi

if [ "$EXEC_OPTON" = "start" ]; then 
  echo "ExcuteCmd:" $EXE_DIR/taosd -c $CFG_DIR
S
slguan 已提交
98 99
  
  if [ "$SHELL_OPTION" = "true" ]; then 
S
Shengliang Guan 已提交
100 101 102
    TT=`date +%s`
    mkdir ${LOG_DIR}/${TT}
    nohup valgrind --log-file=${LOG_DIR}/${TT}/valgrind.log --tool=memcheck --leak-check=full --show-reachable=no  --track-origins=yes --show-leak-kinds=all  -v  --workaround-gcc296-bugs=yes   $EXE_DIR/taosd -c $CFG_DIR > /dev/null 2>&1 &   
S
slguan 已提交
103 104 105
  else
    nohup $EXE_DIR/taosd -c $CFG_DIR > /dev/null 2>&1 & 
  fi
S
slguan 已提交
106 107 108 109 110
  
else
  #relative path
  RCFG_DIR=sim/$NODE_NAME/cfg
  PID=`ps -ef|grep taosd | grep $RCFG_DIR | grep -v grep | awk '{print $2}'`
111 112
  while [ -n "$PID" ]
  do
113
    if [ "$SIGNAL" = "SIGKILL" ]; then
114
      echo try to kill by signal SIGKILL
115
      kill -9 $PID
116 117 118
    else
      echo try to kill by signal SIGINT
      kill -SIGINT $PID
S
slguan 已提交
119
    fi
120 121 122
    sleep 1
    PID=`ps -ef|grep taosd | grep $RCFG_DIR | grep -v grep | awk '{print $2}'`
  done 
S
slguan 已提交
123 124
fi