#1 2. Februar 2010 Hallo, habe mir auf einem meiner Rechner nen CS:S Server installiert u. versuche nun diesen über das hier im TUT-Bereich gepostete script zum laufen zu bekommen. Abgeändert schaut dies so aus: Code: #! /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/srcds /etc/rc.d/rc3.d/S90srcds # ln -s /etc/rc.d/init.d/srcds /etc/rc.d/rc3.d/K50srcds # 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=css PATH=/bin:/usr/bin:/sbin:/usr/sbin # # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS! DIR=/home/css DAEMON=srcds_run # LAN server: # PARAMS="-game cstrike -nomaster -insecure +sv_lan 1 +maxplayers 16 +map de_dust" # Internet server: PARAMS="-game cstrike +ip xxx.xxx.xxx.xxx +port 27015 +map de_dust2 +maxplayers 16 -tickrate 100" NAME=cssserver DESC="CS:S dedicated 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 Ich habe also alles für meine Ansprüche geändert, den User, den Pfad zur srcds_run sowie die Startparameter. Das Script habe ich in srcds umbenannt u. einfach in den /home/css ordner kopiert. Ab hier besteht nun auch das problem! Was muss noch gemacht werden oder besser wie kann ich dieses nun ausführen?
#2 4. Februar 2010 AW: CS:S Startscript einrichten mit sh ./"scriptname" musst dann natürlich schon im Ordner /home/css sein da es ein relativer Pfad ist
#3 5. Februar 2010 AW: CS:S Startscript einrichten wofür ist der Befehl sh ./ ? Wenn ich sh ./srcds ausführe bekomme ich zumindest schonmal die Anzeige was ich alles machen kann. Start,Stop,Watch,Restart... Wenn ich dann sh ./srcds Start mache kommt folgendes: Starting CS:S dedicated server: cssserver ... No such directory: /srcds!
#4 5. Februar 2010 AW: CS:S Startscript einrichten scheinbar muss der srcds ordner im /home/css ordner liegen, sonst scheint das nicht zu klappen (wenn ich das hier grade richtig sehe). stell mal bitte klar, in welchem dir du dich befindest und wo deine ordner sind...mfg coach
#5 5. Februar 2010 AW: CS:S Startscript einrichten Also Homeverzeichniss des Benutzers ist /home/css. Dort befinden sich auch alle Ordner inkl. Datein die für den CS:S Server erforderlich sind. Das script, also die Datei srcds befindet sich ebenfalls im /home/css dir.
#7 10. Februar 2010 AW: CS:S Startscript einrichten Code: # Now you can link the script to your runlevel-dir, here's an example for runlevel 3: # ln -s /etc/rc.d/init.d/srcds /etc/rc.d/rc3.d/S90srcds # ln -s /etc/rc.d/init.d/srcds /etc/rc.d/rc3.d/K50srcds # 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 Steht doch da wie du es starten kannst? Sprich du kannst einen symbolischen Link in ein Runlevel (hier 3, was auch eigentlich sinnvoll ist) auswählen und es zu deinen Skript verweisen oder du startest das ganze Manuell mit ./ das zum Ausführen von Bash-Skripten steht! anschließend kannst du wie in dem Skript ebenfalls definiert die startparameter übergeben.. Sollte nun funktionieren... Ansonsten wenn du es startest und eine Fehlermeldung kommt poste die doch mal bitte hier rein! Ansonsten vllt mal die Rechte anpassen! LG 3x3x3x3
#8 10. Februar 2010 AW: CS:S Startscript einrichten also noch einmal von vorne. Habe mir das im ersten post genannte script gezogen und auf meine Bedürfnisse geändert. Die Datei von srcds.txt in srcds umbenannt. Diese in das Verzeichniss /home/css kopiert Wenn ich nun in putty einlogge mache ich folgendes: su css : Wechsle auf den user der den css server starten soll cd /home/css: in das verzeichniss wechseln in der die srcds enthalten ist. dann ./srcds Danach bekomme ich folgende Fehlermeldung: ./srcds: /bin/bash^M: bad interpreter: No such file or directory Rechte habe ich gesetzt mit chmod u=rwx /home/css/srcds
#9 10. Februar 2010 AW: CS:S Startscript einrichten Code: ./srcds: /bin/bash^M: bad interpreter: No such file or directory Das weißt daraufhin, dass du die Windows-Zeilenumbrüche in der Datei hast (weil du sie z.B. lokal bearbeitet hast). Bei windows sieht ein Zeilenumbruch so aus: "\r\n". Das \r steht für einen Wagenrücklauf und das \n für das Neue-Zeile-Zeichen (Natürlich sind die Zeichen in echt nicht druckbar. \r udn \n ist einfach nur die Darstellung, z.b. in der Bash). Bei linux bestehen die Zeilenumbrüche jedoch nur aus "\n". Für Linux sieht die Zeile also wie folgt aus: "#! /bin/bash\r". Und eine solche Datei gibts nunmal nicht Du musst also alle \r\n-Zeilenumbrüche in \n-Umbrüche umwandeln. Dazu gibts ein Utility namens dos2unix: Code: $ dos2unix script.sh
#10 10. Februar 2010 AW: CS:S Startscript einrichten Vom Script hab ich keine Ahnung aber ich wollte was anderes gerne fragen... Hast du mind. ne Standleitung um vernünftig auf dem Server spielen zu können..!?
#11 10. Februar 2010 AW: CS:S Startscript einrichten Ok, alles klar, habe das script nun einfach im Editor von Ubuntu selbst geschrieben. Funktioniert nun! Server dient lediglich als Lanserver bzw. Versuch Ihn später auf einem echtem Root zu betreiben!