Archiv verlassen und diese Seite im Standarddesign anzeigen : CS Server mit screen
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
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)
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
ok danke muss mir aber glaube noch was anderes überldegen
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
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
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
ok danke gleich mal probieren thx im vorraus:)
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
AHH ok habs geschafft jetzt gehts aber trotzdem danke
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
Jo danke ne kein root server versuche ne lan zu starten und dafür halt nen server aufsätzen :)
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.