blob: f48f83180b92c9a502a5b6c468629e6b225af619 [file] [log] [blame]
#!/bin/bash
ulimit -c unlimited
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/ramcloud/bindings/java/edu/stanford/ramcloud:${HOME}/ramcloud/obj.blueprint-java
# Set paths
ONOS_HOME=`dirname $0`
RAMCLOUD_DIR=${HOME}/ramcloud
LOGDIR=${ONOS_HOME}/onos-logs
RAMCLOUD_LOG=${LOGDIR}/ramcloud.server.`hostname`.log
coordinatorip=`grep coordinatorIp ${ONOS_HOME}/conf/ramcloud.conf | cut -d "=" -f 2,3`
coordinatorport=`grep coordinatorPort ${ONOS_HOME}/conf/ramcloud.conf | cut -d "=" -f 2,3`
RAMCLOUD_COORDINATOR=`echo $coordinatorip","$coordinatorport`
serverip=`grep serverIp ${ONOS_HOME}/conf/ramcloud.conf | cut -d "=" -f 2,3`
serverport=`grep serverPort ${ONOS_HOME}/conf/ramcloud.conf | cut -d "=" -f 2,3`
RAMCLOUD_SERVER=`echo $serverip","$serverport`
function lotate {
logfile=$1
nr_max=${2:-10}
if [ -f $logfile ]; then
for i in `seq $(expr $nr_max - 1) -1 1`; do
if [ -f ${logfile}.${i} ]; then
mv -f ${logfile}.${i} ${logfile}.`expr $i + 1`
fi
done
mv $logfile $logfile.1
fi
}
function start {
if [ ! -d ${LOGDIR} ]; then
mkdir -p ${LOGDIR}
fi
echo "rotate log: $log"
if [ -f $RAMCLOUD_LOG ]; then
lotate $RAMCLOUD_LOG
fi
# Run ramcloud
echo "Starting ramcloud"
$RAMCLOUD_DIR/obj.blueprint-java/server -M -L $RAMCLOUD_SERVER -C $RAMCLOUD_COORDINATOR --masterServiceThreads 1 --logCleanerThreads 1 --detectFailures 0 > $RAMCLOUD_LOG 2>&1 &
}
function stop {
# Kill the existing processes
capid=`pgrep -f obj.blueprint-java/server | awk '{print $1}'`
pids="$capid"
for p in ${pids}; do
if [ x$p != "x" ]; then
kill -KILL $p
echo "Killed existing prosess (pid: $p)"
fi
done
}
function deldb {
# # Delete the berkeley db database
if [ -d "/tmp/ramcloud.conf" ]; then
echo "deleting berkeley db dir"
sudo rm -rf /tmp/ramcloud.conf
fi
}
case "$1" in
start)
deldb
cp $ONOS_HOME/conf/ramcloud.conf /tmp
stop
start
;;
stop)
stop
;;
# deldb)
# deldb
# ;;
status)
n=`pgrep -f obj.blueprint-java/server | wc -l`
echo "$n ramcloud server running"
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac