- From: John E. Conlon <jconlon@verticon.com>
- Date: Thu, 12 Aug 1999 09:35:47 -0400
- To: Roland Mainz <Roland.Mainz@informatik.med.uni-giessen.de>, W3 Jigsaw Mailinglist <www-jigsaw@w3.org>
Hello Roland, Thank you for the script. Here are few comments: 1. Running with a different root on my server, so I added a JIGROOT variable which I use in the start up line. 2. Had problems with the "-host ${JIGHOST} " the 2.03 version I have does not seem to support it. Other than that it works fine on my Solaris 7. thanks again, John At 11:46 PM 7/30/99 +0200, Roland Mainz wrote: > >Hi ! > >---- > >Here comes a new version of the jigsaw.server script (V1.8). > >It would be nice if someone would make some comments which platforms are >working and which not. > >The script needs little modifications to set the right CLASSPATH, jigsaw's >user/group and home directory, and the file permissions should be set to 700, >othwise >the admin server's password is visible to other users (security leak !!). > >TODO: >- script should warn at startup (and log daemon/critical) if jigsaw was >terminated > using CTRL-C etc. (see logger(1)) >- script should be rewritten to use functions >- renaming logs at startup: the script should rename jigsaw's logfiles in the > syslog-style (e.g. syslog.0, syslog.1 etc.) at startup. > This will be an optional feature, which is usefull when the server is >restarted > every night using the "restart_server" option (to get daily logs). > >---- > >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.8 1999/05/29 IMI" ># >####################################################### ># version history ># 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 >JIGUID=jigsaw >JIGGID=www > >JIGADMINUSER=admin >JIGADMINPASSWD=pizza4all > ># 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-tr2/xml.jar:/usr/local/java/ibmxml4j/xml4j_2_0_0/xml4j.jar:/usr/local/j ava/jsdk2.1/servlet.jar:/usr/local/java/javamail-1.1.1/mail.jar:/usr/local/j ava/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 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 > ************************************************************************ John E. Conlon jconlon@verticon.com tel: (770) 886-5470 fax: (770) 888-6894 <http://www.verticon.com/>www.verticon.com ************************************************************************
Received on Thursday, 12 August 1999 09:35:31 UTC