summaryrefslogtreecommitdiff
path: root/cpp/tests/broker
blob: c49e967466b8ad5c0a9da5f2c41aa8b1141c28e9 (plain)
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
#!/bin/sh
. `dirname $0`/env

brokerpid() {
    netstat -tpl 2> /dev/null | awk '/amqp/ {print gensub("/.*$","","g",$7) }'
}

killbroker () {
    PID=`brokerpid`
    if [ -n "$PID" ] ; then kill $PID ; fi
    for ((i=5;i--;)) {
	if [ -z "`brokerpid`" ] ; then exit 0 ; fi
	sleep 1
    }
    echo "Broker `brokerpid` refuses to die."
}

waitbroker () {
    while [ -z `brokerpid` ] ; do sleep 1 ; done
}

startbroker() {
    case $1 in
	j)   
	    export AMQJ_LOGGING_LEVEL=fatal
	    export JDPA_OPTS=
	    export QPID_OPTS=-Xmx1024M
	    export debug=1
	    CMD="qpid-server"
	    qpid-run -run:print-command # Show the command line.
	    ;;
	c)  CMD=qpidd ;;
    esac
    nohup $CMD  > /dev/null 2>&1 &
    waitbroker
    echo Broker started: $CMD
}


case $1 in
    j|c) startbroker $1 ;;
    stop|kill) killbroker ;;
    wait) waitbroker ;;
    pid) brokerpid ;;
esac