#!/bin/bash
#
# enbd-server	Start/Stop the Enhanced Network Block Device server daemon
#
# Author:	Steve Purkis <steve.purkis@multimap.com>
#		(derived work)
# Originals by:	Peter T. Breuer <ptb@it.uc3m.es>
#		Matthew Sackman <matthew@wellquite.org>
# License:	GNU GPL v2.1
#
# These scripts are for Red Hat machines.
#
# Note: This service must start before heartbeat!
#
# chkconfig: 2345 74 20
# description: ENBD Server Daemon
# processname: enbd-server
# config: this file
# pidfile: /var/run/enbd-server-$SERVER_ID.pid

# Source function library.
. /etc/init.d/functions

prog="enbd-server"
pidfile="/var/run/enbd-server-$SERVER_ID.pid"

ENBD_SERVER="/usr/local/sbin/enbd-server"
# enbd-server uses syslog so don't bother capturing output twice:
ENBD_SERVER_LOG="/dev/null"
SERVER_PORT="1100"
SHARED_DEVICE="/dev/hda8"
SERVER_ID=`uname -n | cut -f1 -d.`
SERVER_OPTS="-i $SERVER_ID -b 1024"

start() {
	status $prog
	ALIVE=$?

	if [ $ALIVE -eq 0 ]; then
		return
	fi

	echo -n "Starting $prog: "
	$ENBD_SERVER $SERVER_PORT $SERVER_OPTS $SHARED_DEVICE >$ENBD_SERVER_LOG 2>&1 && success || failure
	RETVAL=$?
	echo

	return $RETVAL
}

stop() {
	status $prog
	ALIVE=$?

	if [ $ALIVE -eq 0 ]; then
		echo -n "Stopping $prog: "
		killproc $prog
		RETVAL=$?
		echo
	else
		RETVAL=0
	fi

	return $RETVAL
}

hardstop() {
	echo -n "Killing $prog: "
	killproc -KILL $prog
	RETVAL=$?
	echo
	return $RETVAL
}

case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  hardstop)
  	hardstop
	;;
  restart)
	stop
	start
	;;
  status)
	status $prog
	;;
  *)
	echo "Usage: $0 {start|stop|hardstop|restart|status}"
	exit 1
esac

exit $?
