summaryrefslogtreecommitdiff
path: root/scripts/sydra-manager.sh
blob: bd6c24ba87f258ef09914779d5db88e2bee47ee0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash

############################

ROOT_D="$1"
GROUP_NAME="$2"

############################

printUsage() {
  echo "Usage: $0 <basedir> <groupname>"
}

if [ -z "$ROOT_D" ] || [ -z "$GROUP_NAME" ]; then
  printUsage
  exit 1
fi
if [ ! -d "$ROOT_D" ]; then
  echo "ERROR: can't change to non-existent directory: $ROOT_D"
  exit 2
fi

. ./include.sh

PIPE="$ROOT_D/sydra-manager.sock"
trap "rm -f $PIPE" EXIT
if [[ ! -p $PIPE ]]; then
    mkfifo $PIPE
fi

cd "$ROOT_D"
MAIN_STAT_FILE="sydra-receiver.main"
echo "00" > $MAIN_STAT_FILE

while true
do
    if read line <$PIPE; then
        cmd=${line%% *}
        arg=${line##* }
        case $cmd in
          restart)
            get_num $arg
            if [ -z "$NUM" ]; then NUM=$arg; fi
            supervisorctl restart "$GROUP_NAME:$NUM"
            NUM=''
            ;;
          select)
            get_num $arg
            if [ -n "$NUM" ]; then
              echo "$NUM" > $MAIN_STAT_FILE
              supervisorctl restart "$GROUP_NAME:main"
            else
              echo "unkown client: $arg" >&2
            fi
            NUM=''
            ;;
          reloadconfig)
            kill -SIGHUP `cat supervisord.pid`
            ;;
          killall)
            kill `cat supervisord.pid`
            ;;
          *)
            echo "unkown command: $cmd" >&2
            ;;
        esac
    fi
done

exit 0