head	1.1;
access;
symbols;
locks; strict;
comment	@# @;


1.1
date	99.06.11.05.40.21;	author bernie;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Initial checkin of all JServWatcher code and helper scripts along with
a sample config file. I hope the code is documented well enough
to explain things.
@
text
@#!/bin/sh
#
# jserv start/stop script.  stolen from apache, then hacked to pieces
# by David Lomax.
#
#
# |||||||||||||||||||| START CONFIGURATION SECTION  ||||||||||||||||||||
# --------------------                              --------------------
# 
TARGETDIR=/usr/local/apache
#
# the path to your PID file
PIDFILE=$TARGETDIR/logs/watcher.pid
#
log=$TARGETDIR/logs/watcher_log
WATCHERRUN=$TARGETDIR/jserv/WatcherRun
#
JAVA=/bin/java
#
# --------------------                              --------------------
# ||||||||||||||||||||   END CONFIGURATION SECTION  ||||||||||||||||||||


ERROR=0
ARGV="$@@"
if [ "x$ARGV" = "x" ] ; then 
    ARGS="help"
fi

for ARG in $@@ $ARGS
do
    # check for pidfile
    if [ -f $PIDFILE ] ; then
	PID=`cat $PIDFILE`
	if kill -0 $PID; then
	    STATUS="jserv (pid $PID) running"
	    RUNNING=1
	else
	    STATUS="jserv (pid $PID?) not running"
	    RUNNING=0
	fi
    else
	STATUS="jserv (no pid file) not running"
	RUNNING=0
    fi

    case $ARG in
    restart)
	if [ $RUNNING -eq 1 ]; then
	    if kill $PID ; then
	        echo "$0 $ARG: jserv stopped"
	        rm $PIDFILE
		sleep 15
	    else
	        echo "$0 $ARG: jserv could not be stopped"
	        ERROR=4
	    fi
	fi


	if [ $ERROR -eq 4 ]; then
	    continue
	fi
	touch $log
	touch $PIDFILE
	chown nobody $log
	chown nobody $PIDFILE
	su nobody -c "$WATCHERRUN"
	echo "$0 $ARG: jserv started"
	;;
    start)
	if [ $RUNNING -eq 1 ]; then
	    echo "$0 $ARG: jserv (pid $PID) already running"
	    continue
	fi
	touch $log
	touch $PIDFILE
	chown nobody $log
	chown nobody $PIDFILE
	su nobody -c "$WATCHERRUN"
	echo "$0 $ARG: jserv started"
	;;
    stop)
	if [ $RUNNING -eq 0 ]; then
	    echo "$0 $ARG: $STATUS"
	    continue
	fi
	if kill $PID ; then
	    echo "$0 $ARG: jserv stopped"
	    rm $PIDFILE
	else
	    echo "$0 $ARG: jserv could not be stopped"
	    ERROR=4
	fi
	;;
    *)
	echo "usage: $0 (start|stop|help)"
	cat <<EOF

start      - start jserv
stop       - stop jserv
help       - this screen

EOF
	ERROR=2
    ;;

    esac

done

exit $ERROR

# ====================================================================
# Copyright (c) 1995-1999 The Apache Group.  All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer. 
# 
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
# 
# 3. All advertising materials mentioning features or use of this
#    software must display the following acknowledgment:
#    "This product includes software developed by the Apache Group
#    for use in the Apache HTTP server project (http://www.apache.org/)."
# 
# 4. The names "Apache Server" and "Apache Group" must not be used to
#    endorse or promote products derived from this software without
#    prior written permission. For written permission, please contact
#    apache@@apache.org.
# 
# 5. Products derived from this software may not be called "Apache"
#    nor may "Apache" appear in their names without prior written
#    permission of the Apache Group.
#
# 6. Redistributions of any form whatsoever must retain the following
#    acknowledgment:
#    "This product includes software developed by the Apache Group
#    for use in the Apache HTTP server project (http://www.apache.org/)."
# 
# THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
# ====================================================================
# 
# This software consists of voluntary contributions made by many
# individuals on behalf of the Apache Group and was originally based
# on public domain software written at the National Center for
# Supercomputing Applications, University of Illinois, Urbana-Champaign.
# For more information on the Apache Group and the Apache HTTP server
# project, please see <http://www.apache.org/>.
# 
@
