- From: Roland Mainz <Roland.Mainz@informatik.med.uni-giessen.de>
- Date: Fri, 30 Jul 1999 23:46:57 +0200
- To: W3 Jigsaw Mailinglist <www-jigsaw@w3.org>
- Message-Id: <37A21D51.CE449155@informatik.med.uni-giessen.de>
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/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 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 Friday, 30 July 1999 17:47:18 UTC