Code
#! /bin/sh
# Ändern Sie hier den Benutzernamen und das
# Passwort für den Webadmin Benutzer
ADMINNAME="AdminName=utadmin"
ADMINPASS="AdminPassword=utadmin"
#
# Ändern Sie hier den Spielmodus
# Mögliche Modi sind:
# - deathmatch (dm)
# - lastmanstanding (lms)
# - teamdeathmatch (tdm)
# - onslaught (ons)
# - bombingrun (bomb)
# - invasion (inv)
# - assault (aslt)
# - doubledom (dd)
# - mutant (mut)
# - capturetheflag (ctf)
GAMETYPE="dm"
#
#
#
# Scriptstart - Bitte nichts ändern !
#####################################
GAMEDIR="/home/ut/ut2004"
INIFILE=${GAMEDIR}/System/UT2004.ini
PIDFILE=${GAMEDIR}/ut2004.pid
DEATHMATCH="DM-Rankin?game=XGame.xDeathMatch"
LASTMANSTANDING="DM-Morpheus3?game=BonusPack.xLastManStandingGame"
TEAMDEATHMATCH="DM-Rankin?game=XGame.xTeamGame"
ONSLAUGHT="ONS-Torlan?game=Onslaught.ONSOnslaughtGame"
BOMBINGRUN="BR-Anubis?game=XGame.xBombingRun"
INVASION="DM-Antalus?game=SkaarjPack.Invasion"
ASSAULT="DM-Antalus?UT2K4Assault.ASGameInfo"
DOUBLEDOM="DOM-SunTemple?game=xGame.xDoubleDom"
MUTANT="DM-Morpheus3?game=BonusPack.xMutantGame"
CTF="CTF-Orbital2?game=XGame.xCTFGame"
MUTATORS="Mutator=XGame.MutQuadJump,XGame.MutFastWeapSwitch,Onslaught.MutOnslaughtWeapons"
SERVER=${GAMEDIR}/System/ucc-bin
CACHERECORD=${GAMEDIR}/System/CacheRecords.ucl
CACHEBACKUP=${GAMEDIR}/System/CacheRecords.bak
CP=/bin/cp
CHMOD=/bin/chmod
case "$1" in
start)
echo "Starte UT2004 Dedicated Server"
case $GAMETYPE in
deathmatch|dm) GAMETYPE=${DEATHMATCH} ;;
lastmanstanding|lms) GAMETYPE=${LASTMANSTANDING} ;;
teamdeathmatch|tdm) GAMETYPE=${TEAMDEATHMATCH} ;;
onslaught|ons) GAMETYPE=${ONSLAUGHT} ;;
bombingrun|bomb) GAMETYPE=${BOMBINGRUN} ;;
invasion|inv) GAMETYPE=${INVASION} ;;
assault|aslt) GAMETYPE=${ASSAULT} ;;
doubledom|dd) GAMETYPE=${DOUBLEDOM} ;;
mutant|mut) GAMETYPE=${MUTANT} ;;
capturetheflag|ctf) GAMETYPE=${CTF} ;;
*)
echo "$GAMEMODE wird nicht unterstützt"
echo "Bitte ändern Sie die Werte in diesem Skript"
exit 1
;;
esac
#
# Ensure that the server binary exists and is executable.
#
if [ -f ${SERVER} ]; then
${CHMOD} 755 ${SERVER}
else
echo "${SERVER} existiert nicht."
exit 1
fi
#
# If the initial backup copy of CacheRecords.ucl doesn't exist,
# create it for future use.
#
if [ ! -f ${CACHEBACKUP} ]; then
${CP} ${CACHERECORD} ${CACHEBACKUP}
fi
#
# Copy in a fresh CacheRecords.ucl to address the linux server
# file corruption issue.
#
# A known good copy of CacheRecords.ucl can be found at
# http://jsalmi.com/ut2004.
#
cd ${GAMEDIR}/System
${CHMOD} 644 ${CACHEBACKUP} ${CACHERECORD}
${CP} ${CACHEBACKUP} ${CACHERECORD}
${CHMOD} 444 ${CACHEBACKUP} ${CACHERECORD}
#
# Start the server.
#
nohup ${SERVER} server "${GAMETYPE}?${ADMINNAME}?${ADMINPASS}?${MUTATORS} -ini=${INIFILE} -nohomedir" 1>/dev/null 2>&1 &
echo $! >$PIDFILE
echo "Server wurde gestartet"
echo "WebAdministration unter: http://`hostname --fqdn`:8080"
;;
stop)
echo "Beende UT2004 Dedicated Server"
kill -TERM `cat $PIDFILE`
rm -f $PIDFILE
echo "Server wurde beendet"
;;
status)
echo "Überprüfe UT2004 Dedicated Server"
if test ! -e $PIDFILE
then
echo "Es ist kein Server aktiv!"
else
pid=`cat $PIDFILE`
UTNETPORT=`netstat -anp 2>/dev/null |grep " $pid/" | awk -F: '{print $2}' |cut -d ' ' -f 1`
if test "x$UTNETPORT" = x
then
echo "Es ist kein Server aktiv!"
else
echo "UT2004 Dedicated Server (PID: $pid) ist aktiv auf Port:"
echo $UTNETPORT
fi
fi
;;
*)
echo "Bitte aufrufen mit: $0 {start|stop|status}"
exit 1
;;
esac
Alles anzeigen
als utded ins Verzeichnis ut abspeichern und ggf anpassen
Aufrufen mit ./utded start
Bei mir funzt es so...