- From: Roland Mainz <Roland.Mainz@informatik.med.uni-giessen.de>
- Date: Tue, 04 May 1999 04:23:21 +0200
- To: "jigsaw@w3.org" <jigsaw@w3.org>, W3 Jigsaw Mailinglist <www-jigsaw@w3.org>
- Message-Id: <372E5A19.3B4F03B5@informatik.med.uni-giessen.de>
Hi ! ---- Here comes (as an attachment) the Solaris daemon script jigsaw.server V1.4 This script allows that jigsaw runs as a system daemon (service), after installation of this script jigsaw is started and shut down at system startup and shutdown. Tested with Solaris 7 Sparc, but any Solaris >= 2.5.1 should work. (It would be __really__ nice if someone tests if this script is compatible with any other Unix and make a report to me...) ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) Roland Mainz C programmer \__\/\/__/ Roland.Mainz@informatik.med.uni-giessen.de MPEG specialist /O /==\ O\ gisburn@w-specht.rhein-ruhr.de Sun&&Amiga programmer (;O/ \/ \O;) TEL +49 (0) 2426901568 FAX +49 (0) 2426901569
#!/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.4 99/05/03 IMI" # ####################################################### # version history # 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 is visible to anyone !! ####################################################### # User "modifyable" variables: JIGHOME=/home/jigsaw JIGHOST=gyros.informatik.med.uni-giessen.de JIGUID=jigsaw JIGGID=www JIGADMINUSER=admin JIGADMINPASSWD=all4apizza # be carefull that this is in sync with the user classpath variables CLASSPATH=/usr/local/java/sax1.0/sax.jar:/usr/local/java/javasoft-project-x/xml-tr1/xml.jar:/usr/local/java/ibmxml4j/xml4j_2_0_0/xml4j.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 -host ${JIGHOST} -root ${JIGHOME}/Jigsaw/Jigsaw -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 10 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" ${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 | grep ${JIGPID}`" != "" ] ; 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 # 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 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 Monday, 3 May 1999 22:22:30 UTC