PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CS Server mit screen


Mr.Bo
09.03.06, 12:38
Hallo

Ich hab da ein problem mit dem screen befehl.

Den server starte ich mit:

screen -A -m -d -S hlds ./hlds_run -game cstrike +maxplayers 10 +map cs_assault

aber je öfter ich den befehl eingebe je mehr fenster mit dem server öffnen sich kann ich es irgendwie machen das man den screen befehl für den server nur einmal eingeben kann

Mfg

Mr.Bo

DonVito1338
09.03.06, 13:28
screen -ls zeigt dir alle offenen screens

screen -r hlds öffnet deinen csserver screen


ausserdem würd ich beim cs server noch +pingboost 3 dazuschreiben

Mr.Bo
09.03.06, 13:33
mmh.. ja ich meine das so das überhaupt nur ein screen geöffnet werden kann also das es nicht passiert das sich der server 2 mal startet wenn ich den befehl 2mal eingebe

DonVito1338
09.03.06, 13:48
wenn du das eingibst


screen -A -m -d -S hlds ./hlds_run -game cstrike +maxplayers 10 +map cs_assault



is klar das sich noch ein screen öffnet und noch ein server startet

wenn du den server managen willst screen -r hlds, dann siehst du den cs server. da kannste befehle eingeben oder den server stoppen ect.

ansonsten mal "man screen" (viel text)

Mr.Bo
09.03.06, 14:24
gibt es eine andere möglichkeit den server zu starten z.B php oder änliches

DonVito1338
09.03.06, 14:39
http://www.linuxforen.de/forums/showthread.php?t=135735

Mr.Bo
09.03.06, 22:14
ok danke muss mir aber glaube noch was anderes überldegen

Suxxess
10.03.06, 02:09
Dort ist auch ein Startscript mit drin.
Dieses Startscript kannst du an deine Spiele anpassen und dann mit

./<Dateiname.sh> start starten
./<Dateiname.sh> stop stoppen
./<Dateiname.sh> restart restarten

Dann nimmst du anstatt des Startbefehls immer den Restartbefehl dann kann der Prozess eigentlich nicht doppelt vorkommen.

Mfg Suxxess

Mr.Bo
12.03.06, 20:50
mmh kann die datei nicht ausführen hab es so angepasst und csstart.sh genannt

NAME=hlds
DESC="Counterstrike 1.6"
PARAMS="-autoupdate"
DIR=/home/cs1601/hlds
SCRIPT=csstart.sh
DAEMON=$DIR/$SCRIPT

ist irgendetwas falsch

also wenn ich jetzt im shell ./csstart.sh start eingebe kommt immernur
bash: ./csstart.sh: cannot execute binary file mach ich irgendwas falsch

Mfg

Mr.Bo

Suxxess
13.03.06, 00:08
NAME=cs
DESC="Counter Strike 1.6"
PARAMS="-binary ./hlds_i686 -game cstrike -autoupdate +maxplayers 13 +map de_dust +ip 123.123.123.123 +port 27015 +exec server.cfg"

DIT=/home/cs/hlds
SCRIPT=hlds_run
DAEMON=$DIR/$SCRIPT

Also hast du nur den Fehler gemacht beim Scriptnamen, damit ist der Startbefehl vom Spiel gemeint und nicht das Script selbst.

Und danach natürlich:
chmod 755 <scriptname>

Mfg Suxxess

Mr.Bo
13.03.06, 18:03
ok danke gleich mal probieren thx im vorraus:)

Mr.Bo
13.03.06, 20:29
mmh Ja hab immernoch das problem habe mein script jetzt so geändert

NAME=cs1601
DESC="Counter Strike 1.6"
PARAMS="-game cstrike -autoupdate +maxplayers 10 +map de_dust2 +ip 85.214.42.93 +port 27015 +exec server.cfg"
DIR=/home/cs1601/hlds
SCRIPT=hlds_run
DAEMON=$DIR/$SCRIPT

aber wenn ich eingebe csstart.sh start dann kommt immernoch ne fehlermeldung

also so

cs1601/hlds> ./csstart.sh start
-bash: ./csstart.sh: cannot execute binary file

Mr.Bo
13.03.06, 20:58
AHH ok habs geschafft jetzt gehts aber trotzdem danke

eos
14.03.06, 12:39
screen -ls zeigt dir alle offenen screens

screen -r hlds öffnet deinen csserver screen


ausserdem würd ich beim cs server noch +pingboost 3 dazuschreiben

Nur wenn es dein Server mitmacht mit pingboost :D

@ Mr.Bo

Da iss dein Startbefehl: screen ./hlds_run -game cstrike +maxplayers 14 +map de_dust2 -pingboost 3 -port *****

Wenn du nur einen Server Starten willst brauchst das -port nicht....

jenachdem was für ne Startmap oder wieviel Playerslots du haben willst sind die angaben ja individuel :D

kann das sein das du Gameserver vercheckst und Rootserber bei Strato dazu verwendest, O_o keine gute Idee aber naja ich lass dich machen wirst selber merken wenn bei denen affen in berlin mal alles abkackt :D

Mr.Bo
14.03.06, 17:52
Jo danke ne kein root server versuche ne lan zu starten und dafür halt nen server aufsätzen :)

Horschdn
25.03.06, 21:39
ich nutze folgendes skript, mit der option safestart verhindert man mehrfache instanzen des HLDS und kann somit auch einen crontab setzen, der alle paar minuten startet, falls es maps gibt die den HLDS zum absturz bringen, um nicht dauernd von hand starten muss. im normalfall müsste -autoupdate eigentlich ausreichen, aber sicher ist sicher.



#!/bin/bash
export TERM=vt100
clear
CS_USER=csserver
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DIR=/home/csserver
EXEC=hlds_run
DAEMON=$DIR/$EXEC
MAP=de_dust
MP=20
IP=xxx.xxx.xxx.xxx
PORT=27015
DATUM=`date +%Y-%m-%d`;

PARAMS="-game cstrike -nojoy -noipx -autoupdate -tos -pingboost 3 +map $MAP +maxplayers $MP +ip $IP -port $PORT -debug"
NAME="hlds"
DESC="CounterStrike dedicated server"

case "$1" in
start)
echo "Starte $DESC: $NAME"
if [ -e $DIR ];
then
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
else echo "Kein Verzeichnis: $DIR!"
fi
;;

safestart)
ps aux | grep -v grep | grep $PORT > /dev/null
CHECK=$?
if [ $CHECK -eq 0 ]
then
echo "$DESC: $NAME laeuft bereits"
else
echo "Starte $DESC: $NAME"
if [ -e $DIR ];
then
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
else echo "Kein Verzeichnis: $DIR!"
fi
fi
;;

stop)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stoppe $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... erledigt."
else
echo "$DESC: $NAME laeuft nicht"
fi
;;

restart)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stoppe $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... erledigt."
else
echo "$DESC: $NAME laeuft nicht"
fi

echo -n "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
;;

status)
ps aux | grep -v grep | grep $PORT > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC: $NAME laeuft bereits" || echo "$DESC: $NAME laeuft nicht"
;;

*)
echo "Usage: $0 { start | safestart | stop | status | restart }"
exit 1
;;
esac

exit 0