#!/bin/sh # # description: Starts and stops MBSE BBS. # # $Id$ # # /etc/rc.d/init.d for Slackware # # 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 # See how we were called. case "$1" in start) echo -n "MBSE BBS starting:" if [ -f $MBSE_ROOT/var/run/mbtask ]; then echo " already started" else 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 " and opened the bbs." fi fi ;; stop) echo -n "MBSE BBS shutdown:" if [ -f $MBSE_ROOT/var/run/mbtask ]; then echo -n " logoff users " su mbse -c '$MBSE_ROOT/bin/mbstat close wait -quiet' >/dev/null echo -n "done," echo -n " stopping mbtask" kill -15 `cat $MBSE_ROOT/var/run/mbtask` i=10; doit=1; while let 'i > 0' && let 'doit != 0' do if [ -f $MBSE_ROOT/var/run/mbtask ]; then echo -n "." sleep 1 let i=i-1 else doit=0 fi done if [ -f $MBSE_ROOT/var/run/mbtask ]; then kill -9 `cat $MBSE_ROOT/var/run/mbtask` fi echo " done." else echo " not running." fi ;; status) echo -n "MBSE BBS status: " if [ ! -f $MBSE_ROOT/var/run/mbtask ]; then echo "mbtask is NOT running" else echo "mbtask running with pid `cat $MBSE_ROOT/var/run/mbtask`" fi ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|reload|restart|status}" exit 1 esac exit 0