#!/bin/bash # # Startup script for Eli's Scheme Web Server # # chkconfig: - 85 15 # description: Eli's Scheme server. # processname: mzscheme # pidfile: /var/run/scheme-webserver-daemon.pid # Source function library. . /etc/rc.d/init.d/functions HOME="/home/eli" export home PLTHOME="$HOME/plt" export PLTHOME PLTCOLLECTS="$HOME/scheme/my-plt:$PLTHOME/collects" export PLTCOLLECTS prog=scheme-webserver pidfile=/var/run/$prog.pid sysfile=/var/lock/subsys/httpd RETVAL=0 start() { echo -n "Starting $prog: " if [ -f $pidfile -o -f $sysfile ]; then echo -n "pid file or subsys locked" echo_failure echo return 1 fi cd /home/eli/scheme/webserver /home/eli/bin/mzscheme \ -grC /home/eli/scheme/webserver/server root-conf \ < /dev/null > /tmp/webserver-log 2>&1 & echo $! > $pidfile # Assume that it always succeeds RETVAL=0 echo_success echo touch $sysfile return 0 } stop() { echo -n "Stopping $prog: " killproc $prog RETVAL=$? echo [ $RETVAL = 0 ] && rm -f $pidfile $sysfile } status() { if [ -f $pidfile ]; then read pid < $pidfile if [ "$pid" = "" ] ; then echo "$pidfile is empty" return 1 elif ps $pid > /dev/null 2>&1; then echo "$prog (pid $pid) is running..." return 0 else echo "$prog dead but pid file exists ($pidfile)" return 1 fi fi if [ -f $sysfile ]; then echo "$prog dead but subsys locked ($sysfile)" return 2 fi echo "$prog is stopped" return 3 } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status RETVAL=$? ;; condrestart) if [ -f $pidfile ]; then stop start fi ;; restart) stop start ;; *) echo "Usage: $prog {start|stop|status|condrestart|restart}" exit 1 esac exit $RETVAL