#!/bin/sh # # Start 1stMud Services # # description: Starts/stops 1stMud Services # BINARY=../bin/1stMud PID_FILE=$BINARY.pid SHUTDOWN_FILE=../data/shutdown.txt ARGLIST="$2 $3 $4 $5 $6 $7 $8 $9" # Function declarations # start_mud() { while [ 1 ]; do $BINARY --startup-script $ARGLIST > /dev/null 2>&1 & RUN_PID="$!" echo $RUN_PID > $PID_FILE wait $RUN_PID # RUN_EC="$?" # if [ "$RUN_EC" = "1" ]; then # exit 0 # fi if [ -r $SHUTDOWN_FILE ]; then rm -f $SHUTDOWN_FILE; exit 0 fi done } # Run the code # STATUS="" if [ -r $PID_FILE ]; then PID=`cat $PID_FILE` if [ -n "$PID" ]; then STATUS=`ps $PID | grep $PID` fi fi case "$1" in status) if [ -n "$STATUS" ]; then echo "1stMud is running." else echo "1stMud is NOT running." fi ;; start) if [ -n "$STATUS" ]; then echo "1stMud is ALREADY running." exit fi echo "Starting 1stMud Services..." start_mud & ;; stop) if [ -z "$STATUS" ]; then echo "1stMud is NOT running ALREADY." exit fi echo "Stopping 1stMud Services..." kill -s SIGTERM $PID sleep 1 rm -f $PID_FILE STATUS=`ps $PID | grep $PID` if [ -n "$STATUS" ]; then sleep 1; fi STATUS=`ps $PID | grep $PID` if [ -n "$STATUS" ]; then sleep 1; fi STATUS=`ps $PID | grep $PID` if [ -n "$STATUS" ]; then kill -s SIGKILL $PID; fi ;; restart) $0 stop $ARGLIST $0 start $ARGLIST ;; *) echo "Usage: $0 {start|stop|restart|status}" echo "" ;; esac