#!/bin/sh # # chkconfig: 345 95 05 # description: Starts and stops MBSE BBS. # # For RedHat, E-Smith and Mandrake SYSV init style. # $Id$ # # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 1 # Find the MBSE_ROOT from the /etc/passwd file. MBSE_ROOT=`cat /etc/passwd | grep mbse: | awk -F ':' '{ print $6}'` if [ "$MBSE_ROOT" = "" ] then echo "MBSE BBS: No 'mbse' user in the password file." exit 1 fi if [ ! -d $MBSE_ROOT ] then echo "MBSE BBS: Home directory '$MBSE_ROOT' not found." exit 1 fi export MBSE_ROOT SU="su" # # From RedHat version 6.1 and up the behaviour of "su" has changed. # Extra tests are added for the RedHat e-smith server distribution, # this is a special distribution based on RedHat. # For Mandrake we follow the same behaviour. # if [ -f /etc/mandrake-release ]; then # # Mandrake 6.0 and newer, use "su -" # RHR="`cat /etc/mandrake-release | awk '{ print $4 }' | tr -d .`" if [ $RHR -gt 60 ]; then SU="su -" fi else if [ -f /etc/redhat-release ]; then if [ -z "`grep e-smith /etc/redhat-release`" ]; then # Standard RedHat RHR=`cat /etc/redhat-release | awk '{ print $5 }' | tr -d .` else # E-Smith server based on RedHat RHR=`cat /etc/redhat-release | awk '{ print $13 }' | tr -d . | tr -d \)` fi if [ $RHR -gt 60 ]; then SU="su -" fi fi fi # See how we were called. case "$1" in start) echo -n "Starting MBSE BBS: " rm -f $MBSE_ROOT/sema/* rm -f $MBSE_ROOT/var/*.LCK rm -f $MBSE_ROOT/tmp/mb* $SU mbse -c '$MBSE_ROOT/bin/mbtask' >/dev/null echo -n "mbtask " sleep 2 if [ -f $MBSE_ROOT/etc/config.data ]; then $SU mbse -c '$MBSE_ROOT/bin/mbstat open -quiet' echo "opened" fi touch /var/lock/subsys/mbsed ;; stop) echo -n "Shutting down MBSE BBS: " if [ -f $MBSE_ROOT/etc/config.data ]; then echo -n "logoff users " $SU mbse -c '$MBSE_ROOT/bin/mbstat close wait -quiet' >/dev/null echo -n "done, " fi echo -n "stop mbtask: " killproc mbtask -15 rm -f /var/lock/subsys/mbsed echo "done." ;; status) status mbsed ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit 0