Mahlzeit...
Also, ich versuche das mal so einfach wie möglich zu erklären!
JEDER gestartete Server von Steam, egal welches Spiel / Addon / Mod darauf läuft, wird durch den zugeordneten PORT eindeutig identifiziert! Ports können halt nur einmal vergeben werden, sprich, solange du für jeden "Server" ein eigenens Verzeichnis anlegst und dieser Server einen anderen Port hat, als die anderen, bleibst du im Rahmen des machbaren.
Genau durch diese "Portidentifikation" kannst du über ein Webinterface gezielt auf einen jeweiligen Server zugreifen! Gameserver Webinterfaces gibt es mittlerweile auch wie Sand am Meer, wenn du Geld investieren magst, empfehle ich dir TekGWI ( Gameserver Web Interface ) von
http://www.teklab.de/ - ! Einfach nur Spitze, läuft bei einem Kollegen selbst als Gameserver Interface!
Wie gesagt, ansprechen tust du den jeweiligen Server, indem du dem Nutzer, den entsprechenden Port freigibst.
Und hier noch ein
CS1.6! Startscript:
Code:
#! /bin/sh
#
# Start the Counter-Strike dedicated server as non-root.
#
# A modification of the CS Server startup script, to run the server
# as a non-root user.
#
# ORIGINAL AUTHORS :
#
# Julien Escario ( pandemik@asylog.net )
# &
# Cedric Rochat ( crochat@younics.org )
#
# ===========================================
#
# What you need:
#
# Linux :)
# awk
# screen
# the hlds_l & cstrike-files OR
# a STEAM-installation
#
# YES, this script works fine with STEAM and CS 1.6
#
# How to use:
#
# Edit the DIR-var to fit your system (just contains the path to the dir that contains hlds_run)
# Edit the PARAMS-var to fit your needs
# Edit the CS_USER-var to the name of the user that will run the server
#
# How to see the server-console:
#
# Just type in: screen -r hlds (or whatever you set $NAME to)
# More info about screen can be found by typing "man screen" or using this nice link
# http://server.counter-strike.net/server.php?cmd=howto&show=screen
#
# The easist way is to use this script simple as a start-script for your server
# If you want to use it as a script to start the server at boot-time:
#
# When this is done, copy the file to /etc/rc.d/init.d (or whereever your system stores the
# scripts for starting the services
# Now you can link the script to your runlevel-dir, here's an example for runlevel 3:
# (THIS IS FOR DEBIAN! If you use e.g. Redhat you must change these dirs!!!)
#
# ln -s /etc/init.d/hlds /etc/rc3.d/S90hlds
# ln -s /etc/init.d/hlds /etc/rc6.d/K50hlds
#
# Or use it manualy like:
# /etc/rc.d/init.d/hlds start
# /etc/rc.d/init.d/hlds stop
#
# If you don't want to start the server as root you have to change this:
# add the var CS_USER and uncomment it
# change the lines at the "start-block"
#
# You must be logged in as this user to re-attach the screen!
#
# DOC by jwm (jwm@counter-strike.de)
# The user that will run the server
CS_USER=hlds
# Leave this alone.
NAME=hlds
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/home/hlds/hlds
# Leave this alone.
DAEMON=hlds_run
# Internet-server:
PARAMS="-game cstrike +map de_aztec +maxplayers 16"
# Leave this alone.
DESC="Counter-Strike dedicated server"
case "$1" in
start)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo "HLDS is already running!"
else
echo "Starting $DESC: $NAME"
su $CS_USER -c "cd $DIR; screen -m -d -S hlds ./$DAEMON $PARAMS"
fi
;;
stop)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
;;
restart)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
echo -n "Starting $DESC: $NAME"
su $CS_USER -c "cd $DIR; screen -m -d -S hlds ./$DAEMON $PARAMS"
echo " ... done."
;;
status)
ps aux | grep -v grep | grep hlds_r > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "HLDS is UP" || echo "HLDS is DOWN"
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0