blob: eca6ff670817422074294633f63c2b0e211cd9bd (
plain) (
tree)
|
|
#!/bin/sh
#
# standard format startup script for unreal tournament
#
# written by abfackeln@abfackeln.com
# 2001-02-19
#
# modified (FreeBSD) by matuska@wu-wien.ac.at
# 2001-10-20
#
######################################################
MYNAME="ucc-DM"
MYGAME="Botpack.DeathMatchPlus"
MYMAP="DM-Barricade"
MYUSERID="nobody"
MYDIR="/usr/games/ut-server"
MYPORT="7777"
MYIP=""
MYMODS=""
MYINI="UnrealTournament.ini"
MYLOGFILE="$MYDIR/System/$MYNAME.log"
MYLOCKFILE="$MYDIR/System/$MYNAME.lock"
# no user servicable parts beyond this point
if [ -z "$MYMODS" ]; then
TMP="$MYMAP""\?game=$MYGAME"
else
TMP="$MYMAP""\?game=$MYGAME""\?mutator=$MYMODS"
fi
if [ -n "$MYIP" ]; then
TMP="$TMP multihome=$MYIP"
fi
MYEXECMD="./ucc server $TMP -nohomedir ini=$MYINI log=$MYLOGFILE"
if [ `whoami` = "root" ]; then
SUID="/usr/bin/su $MYUSERID -c"
else
SUID=
fi
ulimit -c 0
case "$1" in
start)
echo -n "Starting Unreal Tournament: "
if [ -f $MYLOCKFILE ]; then
echo "already running according to $MYLOCKFILE. Not started."
else
cd $MYDIR
if [ -n "$SUID" ]; then
$SUID "$MYEXECMD > /dev/null & echo \$! > $MYLOCKFILE" > /dev/null &
else
/bin/sh -c "$MYEXECMD & echo \$! > $MYLOCKFILE" > /dev/null &
fi
echo "$MYNAME"
fi
;;
stop)
echo -n "Stopping Unreal Tournament: "
if [ ! -f $MYLOCKFILE ]; then
echo "not found"
exit 2
fi
kill -TERM `cat $MYLOCKFILE`
rm -f $MYLOCKFILE
echo "$MYNAME"
;;
restart)
if [ -f $MYLOCKFILE ]; then
$0 stop
fi
$0 start
;;
check)
## the next condition was devised by Chris Weiss for his ut-check script
## ftp://xplug.sourceforge.net/pub/xplug/ut-check.tar.gz
## i have slightly modified it and integrated it here
## usage: call "ucc.init check" from a cron task every 5 minutes or so
## output will be nothing if it was running
## else output will be a start message and the server will restart
if [ -z "$(ps --no-headers -p $(cat $MYLOCKFILE 2>/dev/null) 2>/dev/null)" ]; then
$0 restart
fi
;;
infinity)
## infinite loop to ensure that server is always up without use of cron
echo $$ > $MYLOCKFILE.8
## the number 8 is the infinity symbol sideways ;) -abf.
while [ 1 ]; do
$0 check
sleep 60
done
;;
die)
$0 stop
## break infinity
kill -TERM `cat $MYLOCKFILE.8`
rm -f $MYLOCKFILE.8
;;
*)
echo "Usage: $0 {start|stop|restart|check|infinity|die}"
exit 1
esac
exit 0
|