Eine kleine Anleitung zum Aufsetzen eines dedizierten Gameservers für Call Of Duty 2 unter OpenSuSE 10.0.
1. Als erstes brauchen wir ein Arbeitsverzeichnis, ich habe hier /srv/games/cod2 genommen.
2. Alle Dateien aus dem Verzeichnis \Setup\Data von der Installations-DVD in das Verzeichnis kopieren.
3. Dann den COD2-Linux-Server von Activision oder sonstwo (-> Google...) herunterladen und ebenfalls ins Verzeichnis /srv/games/cod2 entpacken.
4. Server-Konfigdatei erstellen (ich verzichte auf Beispiele, es gibt genug im Netz), die Konfdatei in das Verzeichnis /srv/games/cod2/main kopieren.
5. Startscript im Verzeichnis /etc/init.d/ erstellen, ich habs mal cod2srv genannt:
#! /bin/sh
#
# Author: Martin Stoehr <martin @ stoehr.org>
#
# /etc/init.d/cod2srv
#
# and symbolic its link
#
# /usr/sbin/rccod2srv
#
### BEGIN INIT INFO
# Provides: cod2_lnxded
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the COD2 linux server
### END INIT INFO
. /etc/rc.status
rc_reset
USER=games
NAME=cod2
DIR=/srv/games/cod2
BIN=cod2_lnxded
DAEMON=$DIR/$SCRIPT
COD2_BIN=$DIR/$BIN
test -x $COD2_BIN || exit 5
PARAMS="+set dedicated 1 +exec server.cfg +map_rotate"
case "$1" in
start)
if [[ `su $USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "COD2 game server is already running!"
else
echo -n "Starting COD2 game server "
su $USER -c "cd $DIR; screen -dmS $NAME $COD2_BIN $PARAMS"
fi
rc_status -v
;;
stop)
if [[ `su $USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Shutting down COD2 game server "
killproc $COD2_BIN
else
echo -n "COD2 game server is not running! "
fi
rc_status -v
;;
restart)
if [[ `su $USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Shutting down COD2 game server "
killproc $COD2_BIN
rc_status -v
echo -n "Starting COD2 game server"
su $USER -c "cd $DIR; screen -dmS $NAME $COD2_BIN $PARAMS"
rc_status -v
else
echo "COD2 game server is not running!"
fi
;;
status)
echo -n "COD2 game server is "
checkproc $COD2_BIN
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|restart|restart}"
exit 1
;;
esac
rc_exit
Alles anzeigen
6. Symlink in /usr/sbin erstellen: ln -s /etc/init.d/cod2srv /usr/sbin/rccod2srv
7. Damit kann man den Server per ssh-Sitzung starten und sich problemlos abmelden, ohne das der Server beendet wird.
Möchte man den Server wieder aufrufen, einfach wieder anmelden und "screen -r cod2" eingeben, dann landet man wieder an der Serverkonsole.