Sie sind nicht angemeldet.

1

04.06.2006, 12:15

Condition Zero

hallo zusammen
ich habe nen CZ-Server auf meinem Linux server laufen!Klappt auch alles perfekt
ich starte ihn mit ./hlds_run ....
und das über putty
wenn ich jetz putty schließe ist aber der server auch aus!
was muss ich machen das er trotzdem weiter läuft?
mfg Fabi

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

2

04.06.2006, 13:18

RE: Condition Zero

nohup ./hlds_run &
oder gleich bei systemstart mit starten lassen und nicht erst aus einer konsole.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

3

04.06.2006, 13:19

wo muss ich das reinschreiben=?
also wens mit autostart laufen soll

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

4

04.06.2006, 13:47

du musst in das verzeichnis /etc/rc.d/rc<runlevel>.d/ ein startscript legen, dann wird der server automatisch beim systemstart mit aufgerufen. der scriptname ist S<startnummer><name>, also zb S20cs. die nummer richtet sich danach, wann der server bei systemstart mit aufgerufen werden soll, da netzwerk usw ja schon laufen sollte, die nummer wird also eine der höheren werte haben müssen (schau in das verzeichnis.
der runlevel hängt davon ab, wie du das gerät startest. der runlevel wird dir mit dem kommando runlevel angezeigt, er ist 3 (multiuserstart mit konsolenlogin) oder 5 (multiuserstart mit X-login).
im startscript selbst steht auch nicht mehr als die aufrufzeile.
benutze die forensuche oder google.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

6

04.06.2006, 13:51

was kapierst du nicht?
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

7

26.08.2007, 21:58

NAbend... :)

Wir haben seit ca. 4 Monaten einen Root und die Server bisher immer über ein Webinterface gestartet usw. Da der Server aber ab ca. 14 Leuten anfängt zu laggen wollten wir den ganzen unnützen Kram runterschmeissen der die ganze Zeit mitläuft...
Wie z.B. Plesk, mysql, apache und den ganzen Mailkram, etc. Das braucht ein Gameserver ja nun mal nicht wirklich... :)

Das Verzeichnis und die ganzen scripte habe ich gefunden, aber was muss ich denn in dem script eingeben, damit der Server auch startet?
Ich weiß nur - wenn ich den über die Konsole ohne screen- Befehl starte geht er ja aus wenn ich die Konsole wieder schließe. Muss ich dann auch in dem Startscript folgenden Befehl einfügen?:

screen ./srcds_run -game cstrike +maxplayers 24 +map de_dust2 -tickrate 100 -port 27015 (ist ein CS: S- Server)


und noch was: Was sind denn die anderen Dateien? als Beispiel: K10mysql & S10mysql (in dem oben genannten Ordner)

z-shell

unregistriert

8

26.08.2007, 23:27

Zitat

aber was muss ich denn in dem script eingeben, damit der Server auch startet?

wurde dir doch gesagt

9

27.08.2007, 10:40

So - ich habe jetzt ein Script in den Ordner /etc/init.d eingefügt mit dem Namen srcds1.
Diesen habe ich im /etc/rc.d/rc3.d Ordner verlinkt mit S20srcds1 und K21srcds1.
In Yast taucht im Runlevel-Editor srcds1 als aktiviert auf, aber der Server startet leider trotzdem nicht bei Systemstart, bzw. Systemneustart.

Das Script, welches ich verwende sieht folgendermaßen aus:

Zitat

#! /bin/bash
#
# Start the Counter-Strike: Source dedicated server.
#
# AUTHORS :
#
# Julien Escario ( pandemik@azilog.net )
# &
# Cedric Rochat ( crochat@younics.org )
# &
# Cmdr._Firewalker ( cmdr._firewalker@web.de )
#
# ===========================================
#
# What you need:
#
# Linux :)
# awk
# screen
# the srcds_l & cstrike files (obtainable via steam)
#
# How to use:
#
# Edit the CS_USER-Var to the user running your cs-servers
# Edit the DIR-Var to fit your system (just contains the path to the dir that contains srcds_run)
# Edit the PARAMS-Var to fit your needs
# - standard is startup as internet server
# if you use multiple scripts on one system you should change the NAME-var (otherwise
# all will be stopped if you run the script with "stop", and status will be useless)
#
# When this is done, copy the file to /etc/rc.d/init.d (or whereever your system stores the
# scripts for starting the services) and set the execute permission.
# Now you can link the script to your runlevel-dir, here's an example for runlevel 3:
# ln -s /etc/rc.d/init.d/srcds1 /etc/rc.d/rc3.d/S21srcds1
# ln -s /etc/rc.d/init.d/srcds1 /etc/rc.d/rc3.d/K22srcds1
# or use update-rc.d if you got a system using that tool (like Debian, see manpage)
#
# Or use it manually like:
# ./srcds start
# ./srcds stop
#
# To see the server-console start the script with the parameter "watch".
#
# DOC by jwm (jwm@counter-strike.de)

# !!!!!!!!!!!!!! CHANGE THIS TO THE USER YOU USE FOR YOUR SERVER !!!!!!!!!!!!!!!
CS_USER=MEINUSER

PATH=/bin:/usr/bin:/sbin:/usr/sbin

# # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/css_server/game2/server_MEINUSER_id4

DAEMON=srcds_run

# LAN server:
# PARAMS="-game cstrike -nomaster -insecure +sv_lan 1 +maxplayers 16 +map de_dust"
# Internet server:
PARAMS="-game cstrike +maxplayers 12 +map de_dust2 -tickrate 100 -port 27015 -nopix"

NAME=csswar
DESC="CS:S War Server"

# No edits (should be) necessary beyond this line

if [ ! -x `which awk` ]; then echo "You need awk for this script"; exit 1; fi
if [ ! -x `which screen` ]; then echo "You need screen (the program, moron!) for this script"; exit 1; fi

if [ `whoami` = root ]
then
usagetype=root
else
usagetype=nonroot
fi

start() {
if [ ! -d $DIR ]; then echo " ... No such directory: $DIR!"; exit 1; fi
if [ ! -x $DIR/$DAEMON ]; then echo "$DIR/$DAEMON does not exist or is not executable!"; exit 1; fi
if status; then echo " ... $DESC: $NAME is already running!"; exit 1; fi

case "$usagetype" in
root)
su - $CS_USER -c "cd $DIR ; screen -AmdS $NAME ./$DAEMON $PARAMS"
;;
nonroot)
cd $DIR ; screen -AmdS $NAME ./$DAEMON $PARAMS
;;
esac

}

stop () {
if ! status; then echo " ... $DESC $NAME could not be found. Probably not running."; exit 1; fi

case "$usagetype" in
root)
tmp=$(su - $CS_USER -c "screen -ls" | awk -F . "\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" | awk '{print $1}')
su - $CS_USER -c "screen -r $tmp -X quit"
;;
nonroot)
screen -r $(screen -ls | awk -F . "\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" | awk '{print $1}') -X quit
;;
esac
}

status () {
case "$usagetype" in
root)
su - $CS_USER -c "screen -ls" | grep [.]$NAME[[:space:]] > /dev/null
;;
nonroot)
screen -ls | grep [.]$NAME[[:space:]] > /dev/null
;;
esac
}

watch () {
if ! status; then echo "$DESC $NAME could not be found. Probably not running."; exit 1; fi

case "$usagetype" in
root)
tmp=$(su - $CS_USER -c "screen -ls" | awk -F . "\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" | awk '{print $1}')
su - $CS_USER -c "screen -r $tmp"
;;
nonroot)
screen -r $(screen -ls | awk -F . "\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" | awk '{print $1}')
;;
esac
}

case "$1" in
start)
echo "Starting $DESC: $NAME"
start
echo " ... done."
;;

stop)
echo "Stopping $DESC: $NAME"
stop
echo " ... done."
;;

restart)
echo "Restarting $DESC: $NAME"
status && stop
start
echo " ... done."
;;

status)
if status
then echo "$DESC: $NAME is UP"
else echo "$DESC: $NAME is DOWN"
fi
;;
watch)
watch
;;

*)
echo "Usage: $0 {start|stop|status|restart|watch}\nWhile watching press ctrl-a, ctrl-d to stop watching without stopping the server."
exit 1
;;

esac


exit 0


Kann mir da vielleicht jemand bei helfen? Vielen Dank im voraus... :)

Gruß,
Jack

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

10

27.08.2007, 10:55

na da hast du aber einen klopper zusammengeschrieben.
wolltest du das teil nicht ohne screen starten?

was sagt denn dein script, wenn du es in der root-konsole ausführst?
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

11

27.08.2007, 10:58

Ich habs ja nicht selbst geschrieben... :) Google hats für mich gefunden...

Wenn ich im Ordner init.d bin, kann ich das script über ./srcds1 start ausführen und es funktioniert einwandfrei. Genauso auch der stop- Befehl, aber leider startet der Server nicht von alleine...

Im übrigen bin ich so vorgegangen wie es im Script stand:

Zitat

# How to use:
#
# Edit the CS_USER-Var to the user running your cs-servers
# Edit the DIR-Var to fit your system (just contains the path to the dir that contains srcds_run)
# Edit the PARAMS-Var to fit your needs
# - standard is startup as internet server
# if you use multiple scripts on one system you should change the NAME-var (otherwise
# all will be stopped if you run the script with "stop", and status will be useless)
#
# When this is done, copy the file to /etc/rc.d/init.d (or whereever your system stores the
# scripts for starting the services) and set the execute permission.
# Now you can link the script to your runlevel-dir, here's an example for runlevel 3:
# ln -s /etc/rc.d/init.d/srcds1 /etc/rc.d/rc3.d/S21srcds1
# ln -s /etc/rc.d/init.d/srcds1 /etc/rc.d/rc3.d/K22srcds1
# or use update-rc.d if you got a system using that tool (like Debian, see manpage)
#
# Or use it manually like:
# ./srcds start
# ./srcds stop


Gruß,
Jack

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

12

27.08.2007, 11:13

und dein rechner läuft im runlevel 3?

das liegt mit großer wahrscheinlichkeit daran, das die startscripte in einer anderen umgebung ausgeführt werden. alle teile müssen mit vollständigem und natürlich richtigen pfad angegeben werden.

schau mal in die logdateien, welche meldungen deines startscriptes dort nach dem systemstart auftauchen, das hilft dir bestimmt weiter.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

13

27.08.2007, 12:51

Wenn ich runlevel eingebe zeigt er mir N 3 an.

Was bedeutet in einer anderen Umgebung?

In der boot.msg (ich hoffe mal das ist die richtige) steht nix über den server drin...

Gruß,
Jack

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

14

27.08.2007, 13:01

Zitat

Original von JackONeill
Wenn ich runlevel eingebe zeigt er mir N 3 an.

Was bedeutet in einer anderen Umgebung?

wenn du ein kommando in ein terminal eingibst, dann arbeitest du in einer interaktiven shell, die startscripte werden in einer nicht-interaktiven shell ausgeführt. dort sind die environment-variablen, suchpfade etc vollkommen anders gesetzt.

Zitat

In der boot.msg (ich hoffe mal das ist die richtige) steht nix über den server drin..

und in der messages?

bau in das script ein paar loggingmeldungen ein, damit du weisst, ob es überhaupt korrekt ausgeführt wird. das script macht etliche tests bis zum start des serverprozesses und wenn davon einer schief geht, dann passiert nichts!
.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

15

27.08.2007, 14:00

So - jetzt habe ich es soweit alles zum Laufen bekommen, aber eine Frage habe ich noch... :)

Gibt es irgendwie die Möglichkeit das ich eine Pause in den Startablauf bekomme? Jetzt startet der Server schön alles, aber leider alles gleichzeitig und entsprechend lange dauert es bis alles läuft...

Gruß,
Jack

Thema bewerten