- From: Roland Mainz <Roland.Mainz@informatik.med.uni-giessen.de>
- Date: Thu, 12 Aug 1999 21:15:06 +0200
- To: W3 Jigsaw Mailinglist <www-jigsaw@w3.org>
- Message-Id: <37B31D3A.AE264D56@informatik.med.uni-giessen.de>
Hi ! ---- Here comes the jigsaw.server script V1.10. This script start and shuts down jigsaw automatically if an unix-box is booted or shut down. Installation details are included within the script. The script is attached to this mail; if you cannot read it, mail me, please ! ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) Roland Mainz C/JAVA programmer \__\/\/__/ Roland.Mainz@informatik.med.uni-giessen.de MPEG specialist /O /==\ O\ gisburn@informatik.med.uni-giessen.de Sun&Unix programmer (;O/ \/ \O;) TEL +49 (0) 641/99-13193 FAX +49 (0) 641/99-41359
#!/sbin/sh
#
# Copyright (c) 1999 by Roland Mainz (Roland.Mainz@informatik.med.uni-giessen.de)
# All rights reserved.
# /etc/init.d/jigsaw.server
# /etc/rc3.d/S10jigsaw.server (hard link to /etc/init.d/jigsaw.server)
# /etc/rc0.d/K39jigsaw.server (hard link to /etc/init.d/jigsaw.server)
#
#pragma ident "@(#)jigsaw.server 1.10 1999/08/12 IMI"
#
#######################################################
# version history
# V1.10 (12.08.1999): - Added JIGROOT config variable which allows that jigsaw's root can be anywhere.
# Suggested by John E. Conlon (jconlon@verticon.com). Thanks !
# V1.9 (11.08.1999): - removed -host option at startup. It seems that jigsaw 2.0.3 no longer requires this option...
# V1.8 (26.07.1999): - fixed the longstandig (silly!) bug that "ps -ef | grep bla-bla" returns the "grep" line
# - "grep" replaced by "fgrep" - smaller, faster...
# - reduced the "start" sleep value back to 5 sec...
# V1.7 (29.05.1999): - Changed CLASSPATH for JAVA Project-X Release 2
# V1.6 (12.05.1999): - stop now only starts jigkill if there's a jigsaw-server process running
# V1.5 (07.05.1999): - start: increased the delay from 10 to 20 sec after jigsaw has been invoked because
# some msgs are "eaten" by dtlogin/xdm
# V1.4 (03.05.1999): - added "save" option to save servers
# - "stop" option now waits until the "jigkill" background process returns
# - fixed delay in stop option (was "sleep 8" instead of "sleep 5";
# bug introduced in V1.2)
# - fixed startup delay (should be 10 sec to see jigsaw's startup messages on console)
# V1.3 (28.04.1999): - changed CLASSPATH for new servlet archive /usr/local/java/jsdk2.1/servlet.jar
# - added SIGKILL shutdown method to force a "shutdown" of jigsaw service if SIGTERM
# did not work
# - added "restart_server" switch to make "stop" + "start" in one step.
# (I did not use the name "restart" because this may be reserved by another /etc/init.d/
# script functionality...)
# V1.2 : - added "sleep 5" at startup to see servers startup messages before xdm/dtlogin hides
# this info...
# V1.1 : - initial release
#######################################################
# Install instructions:
# copy this script to /etc/init.d/jigsaw.server and make hard links
# /etc/rc3.d/S10jigsaw.server and /etc/rc0.d/K39jigsaw.server to this script
# Set permissions to 700 (chmod 700 /etc/init.d/jigsaw.server), otherwise
# the admin server's password is visible to anyone !!
#######################################################
# User "modifyable" variables:
JIGHOME=/home/jigsaw
JIGHOST=gyros.informatik.med.uni-giessen.de
JIGROOT=${JIGHOME}/Jigsaw/Jigsaw # this is normally the default location
JIGUID=jigsaw
JIGGID=www
JIGADMINUSER=admin
JIGADMINPASSWD=pizza4all
# be carefull that this is in sync with the user classpath variables
CLASSPATH=/usr/local/java/javasoft-project-x/xml-tr2/xml.jar:/usr/local/java/jsdk2.1/servlet.jar:/usr/local/java/javamail-1.1.1/mail.jar:/usr/local/java/jaf/activation.jar:/usr/java/lib/dt.jar:/usr/java/jre/lib/ext/iiimp.jar:/usr/java/jre/lib/i18n.jar:/usr/java/jre/lib/rt.jar
export CLASSPATH
## do not edit below this line !!
JIGBIN=${JIGHOME}/Jigsaw/Jigsaw/bin
# jigsaw installed on this system ?
[ ! -d "${JIGHOME}" ] && exit
# asserts
if [ ! -x ${JIGBIN}/jigsaw ] ; then echo "${0}: no ${JIGBIN}/jigsaw" ; exit 0 ; fi
if [ ! -x ${JIGBIN}/jigkill ] ; then echo "${0}: no ${JIGBIN}/jigkill" ; exit 0 ; fi
# Start/stop processes required for jigsaw WWW server
case "$1" in
'start')
echo "jigsaw webserver\c"
if [ -f /etc/jigsaw.pid ] ; then
echo " already running."
exit 0
else
# launch jigsaw web server
${JIGBIN}/jigsaw -root ${JIGROOT} -user ${JIGUID} -group ${JIGGID} </dev/null >/dev/console 2>&1 &
# store web-servers PID in /etc/jigsaw.pid
echo $! >/etc/jigsaw.pid
echo " started."
# give jigsaw a chance to print it's startup message to console
sleep 5
exit 0
fi
;;
'stop')
if [ -f /etc/jigsaw.pid ] ; then
echo "Attempt to kill jigsaw web server\c"
JIGPID=`cat /etc/jigsaw.pid`
echo ".\c"
# only and only start jigkill if there is a process that can killed !
if [ "`ps -ef -o pid | fgrep ${JIGPID} | fgrep -v fgrep`" != "" ] ; then
${JIGBIN}/jigkill -u ${JIGADMINUSER} -p ${JIGADMINPASSWD} --stop http://${JIGHOST}:8009/ >/dev/null &
# time to wait for jigsaw to exit, after this fire a SIGTERM to the JVM
TIMETOKILLJIG=48 # 4 min
while [ "`ps -ef -o pid | fgrep ${JIGPID} | fgrep -v fgrep`" != "" ] ; do
echo ".\c"
sleep 5
TIMETOKILLJIG=`expr ${TIMETOKILLJIG} - 1`
# sometimes the JVM hangs; in this case (after TIMETOKILLJIG * 5 sec) send a SIGTERM...
if [ ${TIMETOKILLJIG} -lt 1 ] ; then
echo "(sending SIGTERM)\c"
kill ${JIGPID}
fi
# same as above, but the unfriendly KILL method to FORCE a shutdown...
if [ ${TIMETOKILLJIG} -lt -5 ] ; then
echo "(sending SIGKILL)\c"
kill -9 ${JIGPID}
echo "######## jigsaw server was KILLED !!!"
fi
done
fi
# remove pid key
rm /etc/jigsaw.pid
echo " done\c"
# wait for "jigkill" background process
wait
echo "."
else
echo "jigsaw web server not running."
fi
;;
'restart_server')
echo "jigsaw restart:"
echo "stopping jigsaw..."
${0} stop
sleep 2
echo "starting jigsaw..."
${0} start
echo "restart done."
;;
'save')
if [ -f /etc/jigsaw.pid ] ; then
# any details are printed from jigkill...
${JIGBIN}/jigkill -u ${JIGADMINUSER} -p ${JIGADMINPASSWD} --save http://${JIGHOST}:8009/
echo "save done."
else
echo "jigsaw web server not running."
fi
;;
*)
echo "Usage: ${0} { start | stop | restart_server | save }"
exit 1
;;
esac
exit 0
Received on Thursday, 12 August 1999 15:19:06 UTC