Server Start??

Timeless
Hallo alle miteinander!

Mein Problem ist folgendes:

Wir haben einen Linux-Root Server auf dem mehrere Cod2 Konsolen laufen und eine Cod4 Konsole. Mit all diesen Konsolen gibt es wenig bis keine Probleme.
Nun ist es so das ich einen ESL konformen Server starten will.
Dazu nahm ich das Startscript von der funktionierenden Cod4 Konsole und änderte die Pfade in dieser ab.
Nachdem der Server über das Script gestartet wurde,
sagt er bei dem Befehl "status" das der Server online ist. Wobei er im HLSW nicht zu sehen ist.
Bei dem Befehl "restart" sagt er wiederum das er keinen laufenden Server findet, den er stoppen könnte.(wie gesagt das script funktioniert auf dem vorhandenen Server)
Nun dacht ich mir das es vieleicht manuell klappen könnte.
Also: in den Hauptordner
dann "screen -dmS esl
dann "screen -r esl
und den Startparameter Manuell eingegeben.
Danach wirft er sofort das raus: Getötet
Die Dateien sind 1 zu 1 die von dem funktionierenden Server. Im Startparameter steht nur ein anderer Port drin. Puplic soll und ist 28990 und ESL soll mal werden 28991

Mir ist nur das "Getötet" schleierhaft.


Kann mir jemand helfen?

benutzte Programme bei dem ganzen: Winscp
Putty
Wordpad
Kelli

Zitat:

Original von Timeless
dann "screen -dmS esl
dann "screen -r esl
und den Startparameter Manuell eingegeben.
Danach wirft er sofort das raus: Getötet

Lass das
screen -dmS esl
screen -r
zum testen komplett weg.
Welche Fehlermeldung siehst du dann?

Zitat:

Original von Timeless
Dazu nahm ich das Startscript von der funktionierenden Cod4 Konsole und änderte die Pfade in dieser ab.

Welche Pfade? Wozu? Hast du vielleicht beim ändern ein ; oder " , ' versehentlich gelöscht?
Bockpower
Firewall?
Kelli

Zitat:

Original von Bockpower
Firewall?

quatsch

getötet: Der Screen Prozess hat sich selbst beendet da es nichts mehr zur Ausführung gibt.

Zitat:

Timeless
sagt er bei dem Befehl "status" das der Server online ist. Wobei er im HLSW nicht zu sehen ist.

Bei den Startscripten die ich scon gesehen habe sagt das status nichts darüber aus das der COD4 Server läuft. Es bedeutet nur das eine PID für den Startbefehl angelegt wurde und das Startscript bereits ausgeführt wird.

Zitat:

Timeless
Bei dem Befehl "restart" sagt er wiederum das er keinen laufenden Server findet, den er stoppen könnte.

Weil es keinen gibt - der Screen Prozess ist beendet ("getötet" - was für ne blöde localisation Augen rollen )
Irgendwas stimmt am Startscript nicht. Tippfehler, Pfad flachs, Syntaxfehler...
EC|Mad2Cap
richtig....stell doch mal bitte dein Startscript rein....vielleicht stimmen deine Ordnerzuweisungen auch nicht....
Timeless
hier mein Startscript:

#! /bin/sh
#########################################################
# STARTSCRIPT FÜR EINEN Call of Duty 4 SERVER #
#########################################################
# Benutzung auf eigene Gefahr!!!!!!!!!!! #
# SCREEN muss auf dem Server installiert sein! #
#########################################################
# Vars: #
# G_USER Username #
# NAME Screen-Name #
# DESC Server-Beschreibung #
# PARAMS Start-Parameter #
# DIR HLDS Directory (absolut) #
# SCRIPT Serverstart-Script #
# DAEMON Daemon #
#########################################################
# OPTIONS: (start|stop|restart|status) #
#########################################################

################## User ################################
# Username unter dem der Server laufen soll
# NICHT als root laufen lassen
G_USER=cod2
################## Vars #################################
# Screen esl
# Attach Screen : # screen -r esl
# Detach Screen : # [CTRL]+[A]; [D]
# Don't press [CTRL]+[C] it will terminate screen
NAME=extcod4tesl
################## Server Description ###################
# Single Word DESC=myserver
# Multiple Words DESC="This is my Server"
DESC="Cryox Cod4 esl"
################## Parameter ############################
# CAN USE: +servercfgfile test2.cfg OR +exec test2.cfg
PARAMS="+set fs_basepath /srv/game/cod4eslserver2/esl +set fs_homepath /srv/game/cod4eslserver2/esl +sv_pb_enable +set sv_punkbuster 1 +set loc_language 2 +set net_ip 85.25.148.239 +set net_port 28991 +set dedicated 2 +exec test2.cfg +map_rotate +set fs_game mods/modwarfare"
################## Directory ############################
# Pfad zum cod4-Directory (absolute)
DIR=/srv/game/cod4eslserver2/esl
################## DAEMON ##############################
# Hier das Startscript platzieren, normalerweise hlds_run
SCRIPT=cod4_lnxded
########################################################
#### NICHTS UNTER DIESER ZEILE VERÄNDERN ! ! ! ####
########################################################

DAEMON=$DIR/$SCRIPT

case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "$DESC läuft bereits!"
else
echo "Starte $DESC "
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
fi
;;

stop)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
;;

restart)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi

echo -n "Starte $DESC"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
echo " ... done."
;;

status)
ps aux | grep -v grep | grep cod > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC ist online" || echo "$DESC ist offline"
;;
*)

echo "Benutze: $0 {start|stop|restart|status}"
exit 1
;;
esac

exit 0

---
Timeless
dieses Script funktioniert auf der laufenden Konsole anstandslos
MikeTNT
Das war jetzt das Script von deinem neuen Server?
Dann bitte noch das Script von dem anderen Server posten, der ja auch noch läuft, soweit ich das verstanden habe. Dann kann man sehen, ob es Überschneidungen gibt, die sich beißen.

Und wenn du schon dabei bist: Wie lauten die beiden Pfade zu deinen beiden Servern? (z.B.: /srv/game/cod4eslserver2/esl )

cu Mike
Kelli
Gib doch mal bitte in Putty nur

cd /srv/game/cod4eslserver2/esl

./cod4_lnxded +set fs_basepath /srv/game/cod4eslserver2/esl +set fs_homepath /srv/game/cod4eslserver2/esl +set sv_punkbuster 1 +set loc_language 2 +set net_ip 85.25.148.239 +set net_port 28991 +set dedicated 2 +set fs_game mods/modwarfare +exec test2.cfg +map_rotate

ein. Was passiert? Fehlermeldung?
Timeless
OK. Hier das Script von der funktionierenden Konsole:

#! /bin/sh
#########################################################
# STARTSCRIPT FÜR EINEN Call of Duty 4 SERVER #
#########################################################
# Benutzung auf eigene Gefahr!!!!!!!!!!! #
# SCREEN muss auf dem Server installiert sein! #
#########################################################
# Vars: #
# G_USER Username #
# NAME Screen-Name #
# DESC Server-Beschreibung #
# PARAMS Start-Parameter #
# DIR HLDS Directory (absolut) #
# SCRIPT Serverstart-Script #
# DAEMON Daemon #
#########################################################
# OPTIONS: (start|stop|restart|status) #
#########################################################

################## User ################################
# Username unter dem der Server laufen soll
# NICHT als root laufen lassen
G_USER=cod2
################## Vars #################################
# Screen esl
# Attach Screen : # screen -r esl
# Detach Screen : # [CTRL]+[A]; [D]
# Don't press [CTRL]+[C] it will terminate screen
NAME=extcod4testserver
################## Server Description ###################
# Single Word DESC=myserver
# Multiple Words DESC="This is my Server"
DESC="Cryox Cod4 Testserver"
################## Parameter ############################
# CAN USE: +servercfgfile test1.cfg OR +exec test1.cfg
PARAMS="+set fs_basepath /srv/game/cod4testserver/esl +set fs_homepath /srv/game/cod4testserver/esl +sv_pb_enable +set sv_punkbuster 1 +set loc_language 2 +set net_ip 85.25.148.239 +set net_port 28990 +set dedicated 2 +exec test1.cfg +map_rotate"
################## Directory ############################
# Pfad zum cod4-Directory (absolute)
DIR=/srv/game/cod4testserver/esl
################## DAEMON ##############################
# Hier das Startscript platzieren, normalerweise hlds_run
SCRIPT=cod4_lnxded
########################################################
#### NICHTS UNTER DIESER ZEILE VERÄNDERN ! ! ! ####
########################################################

DAEMON=$DIR/$SCRIPT

case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "$DESC läuft bereits!"
else
echo "Starte $DESC "
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
fi
;;

stop)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
;;

restart)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi

echo -n "Starte $DESC"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
echo " ... done."
;;

status)
ps aux | grep -v grep | grep cod > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC ist online" || echo "$DESC ist offline"
;;
*)

echo "Benutze: $0 {start|stop|restart|status}"
exit 1
;;
esac

exit 0

---



und das von der nicht laufenden:

#! /bin/sh
#########################################################
# STARTSCRIPT FÜR EINEN Call of Duty 4 SERVER #
#########################################################
# Benutzung auf eigene Gefahr!!!!!!!!!!! #
# SCREEN muss auf dem Server installiert sein! #
#########################################################
# Vars: #
# G_USER Username #
# NAME Screen-Name #
# DESC Server-Beschreibung #
# PARAMS Start-Parameter #
# DIR HLDS Directory (absolut) #
# SCRIPT Serverstart-Script #
# DAEMON Daemon #
#########################################################
# OPTIONS: (start|stop|restart|status) #
#########################################################

################## User ################################
# Username unter dem der Server laufen soll
# NICHT als root laufen lassen
G_USER=cod2
################## Vars #################################
# Screen esl
# Attach Screen : # screen -r esl
# Detach Screen : # [CTRL]+[A]; [D]
# Don't press [CTRL]+[C] it will terminate screen
NAME=extcod4ESL
################## Server Description ###################
# Single Word DESC=myserver
# Multiple Words DESC="This is my Server"
DESC="Cryox Cod4 ESL"
################## Parameter ############################
# CAN USE: +servercfgfile test2.cfg OR +exec test2.cfg
PARAMS="+set fs_basepath /srv/game/cod4eslserver2/cod4testserver/esl +set fs_homepath /srv/game/cod4eslserver2/cod4testserver/esl +sv_pb_enable +set sv_punkbuster 1 +set loc_language 2 +set fs_game "Mods/ModWarfare" +set net_ip 85.25.148.239 +set net_port 28991 +set dedicated 2 +exec test1.cfg +map_rotate"
################## Directory ############################
# Pfad zum cod4-Directory (absolute)
DIR=/srv/game/cod4eslserver2/cod4testserver/esl
################## DAEMON ##############################
# Hier das Startscript platzieren, normalerweise hlds_run
SCRIPT=cod4_lnxded
########################################################
#### NICHTS UNTER DIESER ZEILE VERÄNDERN ! ! ! ####
########################################################

DAEMON=$DIR/$SCRIPT

case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "$DESC läuft bereits!"
else
echo "Starte $DESC "
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
fi
;;

stop)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
;;

restart)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi

echo -n "Starte $DESC"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
echo " ... done."
;;

status)
ps aux | grep -v grep | grep cod > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC ist online" || echo "$DESC ist offline"
;;
*)

echo "Benutze: $0 {start|stop|restart|status}"
exit 1
;;
esac

exit 0

---
Timeless
diese beiden scripte sind jetzt direkt von dem Root kopiert. Hatte mich oben bei dem Pfad verschrieben. sry
Timeless
beim manuellen Start mit dem Parameter:
./cod4_lnxded +set fs_basepath /srv/game/cod4eslserver2/cod4testserver/esl +set fs_homepath /srv/game/cod4eslserver2/cod4testserver/esl +sv_pb_enable +set sv_punkbuster 1 +set loc_language 2 +set fs_game "Mods/ModWarfare" +set net_ip 85.25.148.239 +set net_port 28991 +set dedicated 2 +exec test1.cfg +map_rotate

läuft er hoch und bleibt natürlich nur solange bis ich mein Putty schließe
Kelli
PARAMS="+set fs_basepath /srv/game/cod4eslserver2/cod4testserver/esl +set fs_homepath /srv/game/cod4eslserver2/cod4testserver/esl +sv_pb_enable +set sv_punkbuster 1 +set loc_language 2 +set fs_game "Mods/ModWarfare" +set net_ip 85.25.148.239 +set net_port 28991 +set dedicated 2 +exec test1.cfg +map_rotate"

nimm mal die "" raus. oder schreib es
PARAMS='+set fs_basepath /srv/game/cod4eslserver2/cod4testserver/esl +set fs_homepath /srv/game/cod4eslserver2/cod4testserver/esl +sv_pb_enable +set sv_punkbuster 1 +set loc_language 2 +set fs_game "Mods/ModWarfare" +set net_ip 85.25.148.239 +set net_port 28991 +set dedicated 2 +exec test1.cfg +map_rotate'
mit einfachen Hochkomma
Timeless
Ok habe jetzt den Root-Server neu gestartet und dir Konsole versucht (mit dem Script) starten was funktionierte. Aber leider als Cod4Host. ???
Timeless
Voll die Tipfehler drin wofür ich mich entschuldige.
MikeTNT
Cod4Host erscheint meistens, wenn die Server-Config-Datei nicht geladen wird oder du einen Namen verwendet hast, der bereits im Spiel intergriert ist. Irgendwo in den weiten Welten dieses Forum hatte ich mal eine Aufstellung gemacht, welche Dateinamen man nicht verwenden darf.
test.cfg geht beispielsweise nicht, test1.cfg sollte aber funktionieren.

Wenn es daran nicht liegt, dann warte auf Kellerkind. Augenzwinkern

cu Mike
Timeless
Jut. Hier mein neues Script dem Ihr entnehmen könnt das ich mit einer default_server.cfg starte und das Ding sogar an bleibt und ich drauf connecten kann.

Aber nach ESL Vorschrift (http://www.esl.eu/de/cod4/faq/4985/#cfg) lädt er einfach nicht die esl_sd.cfg.

Kann es sein das dieses Spiel ein absoluter Admin-Alptraum ist?


#! /bin/sh
#########################################################
# STARTSCRIPT FÜR EINEN Call of Duty 4 SERVER #
#########################################################
# Benutzung auf eigene Gefahr!!!!!!!!!!! #
# SCREEN muss auf dem Server installiert sein! #
#########################################################
# Vars: #
# G_USER Username #
# NAME Screen-Name #
# DESC Server-Beschreibung #
# PARAMS Start-Parameter #
# DIR HLDS Directory (absolut) #
# SCRIPT Serverstart-Script #
# DAEMON Daemon #
#########################################################
# OPTIONS: (start|stop|restart|status) #
#########################################################

################## User ################################
# Username unter dem der Server laufen soll
# NICHT als root laufen lassen
G_USER=cod2
################## Vars #################################
# Screen esl
# Attach Screen : # screen -r esl
# Detach Screen : # [CTRL]+[A]; [D]
# Don't press [CTRL]+[C] it will terminate screen
NAME=extcod4ESL
################## Server Description ###################
# Single Word DESC=myserver
# Multiple Words DESC="This is my Server"
DESC="Cryox Cod4 ESL"
################## Parameter ############################
# CAN USE: +servercfgfile default_server.cfg OR +exec default_server.cfg
PARAMS="+set fs_basepath /srv/game/cod4eslserver2/cod4testserver/esl +set fs_homepath /srv/game/cod4eslserver2/cod4testserver/esl +sv_pb_enable +set sv_punkbuster 1 +set loc_language 2 +set fs_game "Mods/ModWarfare" +set net_ip 85.25.148.239 +set net_port 28991 +set dedicated 2 +exec default_server.cfg +map_rotate"
################## Directory ############################
# Pfad zum cod4-Directory (absolute)
DIR=/srv/game/cod4eslserver2/cod4testserver/esl
################## DAEMON ##############################
# Hier das Startscript platzieren, normalerweise hlds_run
SCRIPT=cod4_lnxded
########################################################
#### NICHTS UNTER DIESER ZEILE VERÄNDERN ! ! ! ####
########################################################

DAEMON=$DIR/$SCRIPT

case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "$DESC läuft bereits!"
else
echo "Starte $DESC "
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
fi
;;

stop)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
;;

restart)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi

echo -n "Starte $DESC"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
echo " ... done."
;;

status)
ps aux | grep -v grep | grep cod > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC ist online" || echo "$DESC ist offline"
;;
*)

echo "Benutze: $0 {start|stop|restart|status}"
exit 1
;;
esac

exit 0

---
Kelli

Zitat:

Original von Timeless
Kann es sein das dieses Spiel ein absoluter Admin-Alptraum ist?

Ich mag es Zunge raus

Deine eslcfg sollte unter
/srv/game/cod4eslserver2/cod4testserver/esl/mods/modwarfare/esl_sd.cfg liegen.
EC|Mad2Cap
Warum legst du nicht die esl_sd.cfg in deinen Modwarfare Ordner rein und machst dann deine Config auf, und fügst folgende Zeile ein

exec esl_sd.cfg

dann sollte er die ESL Config immer beim Serverstart gleich laden...
Timeless
Wo füge ich die Zeile ein?