Script defekt

Dieses Thema im Forum "Debian/Ubuntu/Knoppix" wurde erstellt von ChrisMD, 03.01.2007.

  1. #1 ChrisMD, 03.01.2007
    ChrisMD

    ChrisMD Haudegen

    Dabei seit:
    30.06.2005
    Beiträge:
    619
    Zustimmungen:
    0
    Ich muss ja einem helfen (der noch weniger Ahnung von Debian hat als ich) einen Rootserver am laufen zu halten. Ist ja auch kein Problem aber man macht sich ja gern die Arbeit leichter.
    Auf counter-strike.de gabs fertige Startupscripte.
    Die hab ich auch unter SuSE benutzt wo sie wunderbar laufen.

    Aber auf der frischen Sarge Installation hab ich damit Probleme.

    Erstens kennt er die Option su -l nicht. Ok dacht ich mir entfern halt das l dann sollte es ja auch gehen, scheint es dann auch.
    Jetzt hab ich aber das Problem dass das Script nicht "merkt" das der Server schon läuft. Das Script startet ihn zwar, gibt aber bei Status aus das er ja DOWN wäre bzw. ich kann nicht stoppen da es behauptet man könne einen Server der DOWN ist ja nicht stoppen.


    Was muss ich dran ändern das oben genanntes nicht mehr auftritt?

    Am besten wärs wenn mir einer ein Script machen könnte das diese Aufgabe erledigt aber etwas simpler ist und auch abwärtskompatibel. :D
    Aber muss ja nich unbedingt sein wenn ich weiß was daran falsch ist.

    Das Script sieht wie folgt aus:

    Code:
    # !!!!!!!!!!!!!! CHANGE THIS TO THE USER YOU USE FOR YOUR SERVER !!!!!!!!!!!!!!!
    CS_USER=server
    # You must be logged in as this user (not by su!) to re-attach the screen!
    
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
    
    # # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
    DIR=~server/srcds_war1
    
    DAEMON=srcds_run
    
    # LAN-server:
    #PARAMS="-game cstrike -nomaster -insecure +sv_lan 1 +maxplayers 16 +map de_dust"
    # Internet-server:
    PARAMS="-game cstrike +map de_dust2 +maxplayers 12 -port 27015 -tickrate 100 -autoupdate"
    
    NAME=srcds_war1
    
    start() {
       echo "Starting $NAME"
       if [ -e $DIR ];
       then
        su $CS_USER -l -c "cd $DIR ; screen -d -m -S $NAME ./$DAEMON $PARAMS"
        echo " ... done."
       else echo "No such directory: $DIR!"
       fi
    }
    
    stop () {
       if [[ `su $CS_USER -l -c "screen -ls" | grep $NAME` ]]
       then
           echo -n "Stopping $NAME"
           kill $(su $CS_USER -l -c "screen -ls" | awk -F . "\$2 ~ /$NAME.*/ {print \$1}" | awk '{print $1}')
           echo " ... done."
       else
           echo "$NAME could not be found. Probably not running."
       fi
    }
    
    
    
    case "$1" in
     start)
       start
       ;;
    
     stop)
       stop
       ;;
    
     restart)
       stop
       start
       ;;
    
     status)
       su $CS_USER -l -c "screen -ls" | grep $NAME > /dev/null
       CHECK=$?
       [ $CHECK -eq 0 ] && echo "$NAME is UP" || echo "$NAME is DOWN"
       ;;
    
     *)
       echo "Usage: $0 {start|stop|status|restart}"
       exit 1
       ;;
    
    esac
    
    
    exit 0
    
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Code:
    # !!!!!!!!!!!!!! CHANGE THIS TO THE USER YOU USE FOR YOUR SERVER !!!!!!!!!!!!!!!
    CS_USER=server
    # You must be logged in as this user (not by su!) to re-attach the screen!
    
    Offenbar muss der Server im 'screen' laufen. Weiterhin muss er als User 'server' gestartet werden.
    Code:
    # # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
    DIR=~server/srcds_war1
    
    Und hier könnte das Problem liegen, denn es muss heissen
    Code:
    DIR=~[b]/[/b]server/srcds_war1
    
    Sofern der Server unter /home/server/server installiert ist.
     
  4. #3 ChrisMD, 03.01.2007
    Zuletzt bearbeitet: 03.01.2007
    ChrisMD

    ChrisMD Haudegen

    Dabei seit:
    30.06.2005
    Beiträge:
    619
    Zustimmungen:
    0
    Der Benutzer heißt server und das Verzeichnis liegt in dessen Home.
    Warum ich das so gemacht hab weiß ich jetzt ach nicht genau. Aber ich werds mal versuchen. :)
     
  5. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Wenn der Pfad stimmt, dann setze wenigstens das fehlende '/' ein. ~server wird sonst zu /home/serverserver führen und nicht (wie wahrscheinlich gewünscht) zu /home/server/server
     
  6. #5 Goodspeed, 03.01.2007
    Goodspeed

    Goodspeed Foren Gott
    Moderator

    Dabei seit:
    21.04.2004
    Beiträge:
    4.165
    Zustimmungen:
    1
    Ort:
    Dresden
    Das "su" aus Sarge kennt nur "-" statt "-l" ... gleiche Funktion.

    Läuft der screen denn überhaupt noch?
     
Thema:

Script defekt

Die Seite wird geladen...

Script defekt - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  3. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  4. Externes Programm mit Script ausführen?

    Externes Programm mit Script ausführen?: Hallo, ich würde gern ein Script zum klonen von festplatten schreiben z.B. mit dem Programm Mondo Rescue. Ist es möglich externen Programmen...
  5. sh Script zum Autostart

    sh Script zum Autostart: hallo liebe Mitglieder, wenn ich unter Linux eins meiner Shell Skripte im Autostart haben will nutze ich immer die @reboot Funktion im crontab....