#!/bin/sh
#vollständiges loop Startscript , restartet einen Gameserver bei Crash
#Autor: Zyrusthc
#Website:
http://zyrusthc.homeip.net
#
#Syntax: ./startscript $X
# $X = start stop restart restartfork
#
#License: GPL
#
http://www.gnu.org/licenses/gpl.html
BASEDIR=/home/irgentwas
PROGRAMM="mohaa_lnxded"
PARAM="+set dedicated 2 +set net_port 12203 +exec custom.cfg"
LOGFILE=$BASEDIR/server.log
INITPIDFILE=$BASEDIR/moh.init.pid
PIDFILE=$BASEDIR/moh.pid
COMMAND="$PROGRAMM $PARAM"
STARTSCRIPTNAME=$0
case "$1" in
start)
echo "Starte $STARTSCRIPTNAME und Kommando: \"$COMMAND\""
$0 fork &
echo $! > $INITPIDFILE
disown
;;
stop)
if test -f $INITPIDFILE; then
if ps aux | grep $(cat $INITPIDFILE) 1> /dev/null 2> /dev/null; then
echo "killing $STARTSCRIPTNAME"
kill -9 $(cat $INITPIDFILE) 1> /dev/null 2> /dev/null
fi
rm $INITPIDFILE
fi
if test -f $PIDFILE; then
if ps aux | grep $(cat $PIDFILE) 1> /dev/null 2> /dev/null; then
echo killing $PROGRAMM
kill -TERM $(cat $PIDFILE) 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
;;
restart)
if test -f $PIDFILE; then
if ps aux | grep $(cat $PIDFILE) 1> /dev/null 2> /dev/null; then
echo "killing $PROGRAMM für restart..."
kill -TERM $(cat $PIDFILE) 1> /dev/null 2> /dev/null
#kill -9 $(cat $PIDFILE) 1> /dev/null 2> /dev/null
fi
rm $PIDFILE
fi
;;
restartfork)
$0 stop
$0 start
;;
fork)
while [ true ]; do
if test -f $LOGFILE; then
mv $LOGFILE $LOGFILE.old
fi
$BASEDIR/$COMMAND 2> $LOGFILE &
echo $! > $PIDFILE
wait
done
;;
*)
echo "Usage: $0 {start|stop|restart|restartfork}"
;;
esac