| #!/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 |