#!/bin/sh # # mgscr MaGic Communication Server for Red hat # # functions start the magic communication server # # version /etc/rc.d/init.d/mgcsr 0.3 (pre.alpha) 06.10.2000 # to be used with red hat # # author klaus-dieter uhlich, kladde # # mailing list: www.egroups.com/groups/magicu-l # # CS_PATH: directory of communication server # default is "/usr/magicadm/servers" CS_PATH=/usr/magicadm/servers # CS_USER: get the environment of an user # default is "magicadm" CS_USER=magicadm # CS_PORT: port number of communication server # default is "2060" CS_PORT=2060 # # source function library . /etc/rc.d/init.d/functions # # chkconfig: 3 92 91 # description: start the magic broker\ # # set additional messages based on functions # to give more information. # echo_up() { [ "$BOOTUP" = "color" ] && $MOVE_TO_COL echo -n "[ " [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING echo -n "UP" [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL echo -n " ]" echo -ne "\r" return 1 } echo_down() { [ "$BOOTUP" = "color" ] && $MOVE_TO_COL echo -n "[ " [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING echo -n "DOWN" [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL echo -n " ]" echo -ne "\r" return 1 } # # if you are not $CS_USER recall this script with $CS_USER. # if [ "$USER" != "$CS_USER" ] ; then su $CS_USER -c "umask 022; $0 $1" exit $? fi # # test the enviroment variables # if [ ! -f $CS_PATH/mgdispatch ] ; then echo -n "mgcsr: $CS_PATH/mgdispatch not found" echo_failure echo exit 1 fi # if [ ! -f $MAGIC_HOME/etc/mgpasswd ]; then echo -n "mgcsr: $MAGIC_HOME/etc/mgpasswd not found" echo_failure echo exit 2 fi # # See how we were called. # RETVAL=0 echo -n "mgcsr service $1:" case "$1" in start) if [ ! -f /var/lock/subsys/mgcsr ]; then cd $CS_PATH $CS_PATH/mgdispatch -$CS_PORT &> $CS_PATH/mgdispatch.log.$$ RETVAL=$? if [ $RETVAL -eq 0 ]; then touch /var/lock/subsys/mgcsr echo_success fi else echo_up fi echo ;; stop) if [ -f /var/lock/subsys/mgcsr ]; then killproc $CS_PATH/mgdispatch RETVAL=$? if [ $RETVAL -eq 0 ]; then echo status $CS_PATH/mgdatasrvr RETVAL2=$? if [ $RETVAL2 -eq 0 ]; then echo -n "mgcsr data server $1:" killproc $CS_PATH/mgdatasrvr fi fi rm -f /var/lock/subsys/mgcsr else echo_down fi echo ;; reload|restart) echo $0 stop $0 start RETVAL=$? ;; status) status $CS_PATH/mgdispatch RETVAL=$? echo echo "1=$RETVAL" ;; *) echo echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit $RETVAL