Linux Auto Restart sh Script

  • Hallo zusammen,


    ich habe folgendes Problem...

    Mein script wird per cron ausgeführt, dies funktioniert wunderbar.. Er killt den screen der läuft.. nur der neue Screen startet nicht..

    Hätte da jemand eine Idee?


  • screen -d -m -S fxserver 'cd /home/fx-server-data && /home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg'

    Versuch mal:


    Code
    screen -d -m -S fxserver bash -c 'cd /home/fx-server-data && /home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg'

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    • Offizieller Beitrag

    Die Zeile cd /home/fx-server-data && /home/fx-server/run.sh ergibt irgendwie keinen Sinn


    Du wechselst erst in ein Verzeichnis und startest dann aus einem anderen Verzeichnis dein Startscript. Den Verzeichniswechsel kannst du dir eh sparen, arbeitest doch mit absoluten Pfaden und brauchst vorher nicht noch irgendwo hin wechseln (was man bei Bash-Scripten eh nicht machen sollte)


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Die Zeile cd /home/fx-server-data && /home/fx-server/run.sh ergibt irgendwie keinen Sinn


    Du wechselst erst in ein Verzeichnis und startest dann aus einem anderen Verzeichnis dein Startscript. Den Verzeichniswechsel kannst du dir eh sparen, arbeitest doch mit absoluten Pfaden und brauchst vorher nicht noch irgendwo hin wechseln (was man bei Bash-Scripten eh nicht machen sollte)

    Da hast du Recht.



    Versuch mal:


    Code
    screen -d -m -S fxserver bash -c 'cd /home/fx-server-data && /home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg'

    Hat geklappt! Danke dir!

    • Offizieller Beitrag

    KALEO Da dieses Thema eben nochmal erstellt wurde mit dem selben Fehlerbild - Was klappt denn nun nicht?


    Ich hab mir mal ein paar Minuten Zeit genommen und das ganze ein wenig schöner gestaltet, man muss ja nicht unbedingt für den Sekunden-Countdown alles einzein ausschreiben :)

    Da screen für solche Anwendungen schon seit Ewigkeiten überholt ist habe ich das ganze direkt mit tmux umgesetzt, ihr müsstet nur das passende Paket mit sudo apt install tmux nachinstallieren (sofern nicht bereits geschehen)

  • KALEO Da dieses Thema eben nochmal erstellt wurde mit dem selben Fehlerbild - Was klappt denn nun nicht?


    Ich hab mir mal ein paar Minuten Zeit genommen und das ganze ein wenig schöner gestaltet, man muss ja nicht unbedingt für den Sekunden-Countdown alles einzein ausschreiben :)

    Da screen für solche Anwendungen schon seit Ewigkeiten überholt ist habe ich das ganze direkt mit tmux umgesetzt, ihr müsstet nur das passende Paket mit sudo apt install tmux nachinstallieren (sofern nicht bereits geschehen)

    Hallo seegras,


    ich bedanke mich erstmal für die Verschönerung.

    TMUX war mir bisher ein Fremdwort... Aber gut zu wissen, dass es da was neues gibt.


    Deinen Codeschnipsel habe ich versucht zu testen, er meldet mir jedoch bei diesem Befehl:

    Code
    tmux send-keys -t fxserver.0 '/home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg' ENTER

    "Can't find window fxserver"


    Ich müsste das Fenster ja vorher einmal erstellen oder?


    Stelle ich mir das so vor, wie einen zweiten Desktop auf Windows?



    Ich Danke dir!

  • Da ich nicht weiß wie deine run.sh aussieht konnte ich den passenden Code dort nicht einfügen

    Die ist halt Standard und sieht so aus:

    Bash
    #!/bin/bash
    
    # save the script directory
    SCRIPT=$(readlink -f "$0")
    SCRIPTPATH=$(dirname "$SCRIPT")
    
    # run server
    exec $SCRIPTPATH/alpine/opt/cfx-server/ld-musl-x86_64.so.1 \
        --library-path "$SCRIPTPATH/alpine/usr/lib/v8/:$SCRIPTPATH/alpine/lib/:$SCRIPTPATH/alpine/usr/lib/" -- \
        $SCRIPTPATH/alpine/opt/cfx-server/FXServer +set citizen_dir $SCRIPTPATH/alpine/opt/cfx-server/citizen/ $*
    • Offizieller Beitrag

    Aha, okay - Da wird also nichts extra gemacht


    Ich hätte als Vorschlag nochmal folgendes Script gebastelt damit das ganze Starten/Stoppen etc. etwas schöner aussieht


    raw


  • Hallo seegras,


    vielen Dank für dieses Script.

    Ich habe es gerade versucht zu testen, er schmeißt mir derzeit diesen Fehler:


    Code
    root@v2202112162131170786:/home/fx-server-data# ./strawberry.sh
    ./strawberry.sh: line 9: syntax error near unexpected token `$'do\r''
    '/strawberry.sh: line 9: `do

    Muss das anders geklammert werden? :O

    • Offizieller Beitrag

    Das wird vom Kopieren kommen, installier mal das Paket dos2unix und jage das Script da durch


    dos2unix control.sh (oder wie die Datei bei dir eben heißt)

  • Alternativ steht es auch hier zum Download bereit


    https://git.bithost.co/nielsperetzke/server-control

    Hey,


    starten klappt, stoppen klappt.

    Neustart geht leider noch nicht, ich habe die Zeilen nochmal so geändert aber geht trotzdem noch nicht.

    Hast du da eine Idee?


    tmux ls sagt es laufen keine Fenster


    Ich danke dir vielmals !

    Code
    ##tmux send-keys -t fxserver.0 '/home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg' ENTER
    tmux new -n fxserver '/home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg'
  • Probiers mal mit der aktuellsten Version im Repo (https://git.bithost.co/nielsperetzke/server-control)

    Die habe ich jetzt genommen.

    Starten, Stoppen klappt wunderbar.


    Wenn ich ihm sage restart lädt es natürlich wegen dem Countdown, dieser ist im Spiel auch zu sehen.

    Sobald dieser abgelaufen ist, geht der Server aus, so wie es soll.


    tmux ls liefert dann aber folgende Meldung:


    Code
    root@v2202112162131170786:/home/fx-server-data# tmux ls
    no server running on /tmp/tmux-0/default
  • Wenn der Server aus ist wird die tmux Session auch beendet - die Meldung ist normal wenn keine Session aktiv ist

    Okay aber wenn nicht ihm sage "restart" dann ist es laut Script doch so, dass er den Server wieder startet oder ? Also so verstehe ich das.


    Bei mir sieht es so aus:

    jj2Zaab.png



    Also Countdown kommt, server geht offline

    • Offizieller Beitrag

    Da ich nicht deinen Datenstand habe kann ich nicht in dem Umfang testen wie es nötig wäre - du darfst also auch gerne selber mal Hand anlegen :)


    Ich habe nochmal eine aktualisierte Version gepusht, probier es damit noch einmal (Config anpassen!)


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen