#!/bin/sh
#
# jserv	standalone ApacheJServ process daemon
#
# chkconfig:	345 80 20
#
# description:	jserv ApacheJServ standalone process
#
# $Id: ApacheJServ.init,v 1.8 2007/01/10 16:12:51 glen Exp $

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

# Get network config
. /etc/sysconfig/network

JSERV_PROPERTIES=/etc/jserv/jserv.properties
JSERV_CLASS=org.apache.jserv.JServ

# Get service config - may override defaults
[ -f /etc/sysconfig/jserv ] && . /etc/sysconfig/jserv

# Check that networking is up.
if is_yes "${NETWORKING}"; then
	if [ ! -f /var/lock/subsys/network ]; then
		msg_network_down ApacheJServ
		exit 1
	fi
else
	exit 0
fi

getconfig() {
	JRE=$(awk -F= '/^wrapper.bin=/{print $2}' $JSERV_PROPERTIES) || JRE=/usr/bin/java
	CLASSPATH=$(awk -F= '/^wrapper\.classpath/{print $2}' $JSERV_PROPERTIES | tr '\n' ':')
	ENV=$(awk -F= '/^wrapper.env=/{printf("%s=%s\n", $2, $3)}' $JSERV_PROPERTIES)
}

start() {
	# Check if the service is already running?
	if [ ! -f /var/lock/subsys/jserv ]; then
		msg_starting ApacheJServ
		getconfig || exit 1
		/usr/bin/setsid start-stop-daemon --start \
			--exec /usr/bin/env \
			--pidfile /var/run/jserv.pid \
			--make-pidfile \
			--chuid jserv \
			--background \
			-- \
			-i $ENV PATH="$PATH" CLASSPATH="$CLASSPATH" LOGFILE=/var/log/jserv/stdout.log /usr/sbin/runjserv $JRE $JSERV_CLASS $JSERV_PROPERTIES
		RETVAL=$?
		if [ $RETVAL -eq 0 ]; then
			touch /var/lock/subsys/jserv
			ok
		else
			fail
		fi
	else
		msg_already_running ApacheJServ
	fi
}

stop() {
	if [ -f /var/lock/subsys/jserv ]; then
		# Stop daemons.
		msg_stopping ApacheJServ
		killproc --pidfile jserv.pid jserv
		rm -f /var/lock/subsys/jserv
	else
		msg_not_running ApacheJServ
	fi
}

# See how we were called.
case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  restart)
	stop
	start
	;;
  status)
	status jserv java
	RETVAL=$?
	;;
  *)
	msg_usage "$0 {start|stop|restart|status}"
	exit 3
esac

exit $RETVAL
