!!! ACHTUNG - evtl. veraltet - ACHTUNG !!!
Diese Seite wurde zuletzt am 9. Juli 2014 um 10:52 Uhr geändert.
Damit RedOrchestra überhaupt starten kann, benötigt es das Paket „libc6-i386“.
Da das Paket durch keine Abhängigkeit eines anderen Paketes im System „gehalten“ wird, sollte man es auf „hold“ setzen, damit es nach der nächsten Aktualisierung per aptitude nicht wieder verschwindet. Nutzt man zum Sauberhalten des Systems dann noch deborphan (welches seinerseits „apt-get“ direkt verwendet), muss man dieses dann auch gleich zweimal tun:
aptitude install libc6-i386 aptitude **hold** libc6-i386 echo libc6-i386 **hold** | dpkg --set-selections
ABER: es wird so in Zukunft auch nicht mehr durch aptitude aktualisiert! (⇒ Handarbeit)
aptitude update aptitude **unhold** libc6-i386 aptitude dist-upgrade aptitude **hold** libc6-i386
Steam-Server-Client für Linux besorgen:
mkdir <IrgendEinVerzeichnis> cd <InDasSoebenAngelegteVerzeichnis> wget http://storefront.steampowered.com/download/hldsupdatetool.bin chmod u+x hldsupdatetool.bin ./hldsupdatetool.bin
RedOrchestra installieren (bzw. aktualisieren):
./steam -command update -verify_all -game redorchestra -dir <DasSoebenAngelegteVerzeichnis>
RedOrchestra-Benutzer anlegen:
addgroup roserver adduser --ingroup roserver --home <DasSoebenAngelegteVerzeichnis> roserver
Mit dem unten stehenden init-Skript kann man den Server nun bequem starten und stoppen.
#! /bin/sh # # roserver initscript for the red orchestra dedicated server # placed in /etc/init.d. # # Author: Patrick NEUMANN <patrick@neumannsland.de>. # # Version: @(#)roserver 1.0 18-Feb-2008 patrick@neumannsland.de # # # Deps: screen, psmisc # set -e PATH="/sbin:/bin:/usr/sbin:/usr/bin" DESC="RedOrchestra dedicated Server" NAME=startserver.sh DAEMON=/opt/ro_server/$NAME SCRIPTNAME=/etc/init.d/roserver # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 # # Function that starts the daemon/service. # d_start() { screen -A -m -d -S roserver su - roserver -c "sh $NAME" } # # Function that stops the daemon/service. # d_stop() { local pid=`screen -list | grep roserver | awk -F . '{print $1}' | sed -e s/.//` if [[|-z "${pid}" ]] ; then echo "Lost screen session" exit 1 else pid=`pstree -p ${pid} | sed -e 's/^.*sh(//' -e 's/ucc-bin.*$//' -e 's/).*$//'` if [[|-z "${pid}" ]] ; then echo "Lost roserver session" exit 1 else kill -TERM ${pid} fi fi } # # Function that checks, if the daemon/service is running. # d_status() { local pid=`screen -list | grep roserver | awk -F . '{print $1}' | sed -e s/.//` if [[|-z "${pid}" ]] ; then echo "$DESC ist not running (or: lost screen session)!" exit 1 else pid=`pstree -p ${pid} | sed -e 's/^.*sh(//' -e 's/ucc-bin.*$//' -e 's/).*$//'` if [[|-z "${pid}" ]] ; then echo "$DESC is not running (or: lost roserver session)!" exit 1 else echo "$DESC ist running (PID: ${pid})! :-)" fi fi } case "$1" in start) echo -e "Starting $DESC \c" d_start echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo " done!" ;; stop) echo -e "Stopping $DESC \c" d_stop echo ". . . done!" ;; restart) echo -e "Stopping $DESC \c" d_stop echo ". . . and now . . ." sleep 1 echo -e "Starting $DESC \c" d_start echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo " done!" ;; status) d_status ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 exit 1 ;; esac exit 0
Damit man nach einem Server-Neustart (sei es auch nur der virtuelle), was äußerst selten vorkommen sollte, nicht vergisst, auch den Dienst neu zu starten, sollte man das init-Skipt am Besten gleich in die Standard-Runlevel mitaufnehmen:
update-rc.d roserver defaults