/restart funktioniert nicht ordentlich.

Dieses Thema im Forum "Technischer Support" wurde erstellt von CubeneXHosting, 2. Januar 2016.

  1. CubeneXHosting
    Offline

    CubeneXHosting

    Registriert seit:
    22. Mai 2014
    Beiträge:
    2
    Guten Tag,
    Ich habe ein kleines Problem. Mein MC Spigot Server restartet eigentlich recht ordentlich mit /restart. Sollte ich allerdings Putty schließen und jemand gibt im Spiel /restart ein passiert nichts mehr. Der Server stoppt und ende. Ich poste euch mal meine Start.sh.

    #!/bin/bash

    while true
    do
    screen -AdmS bw1 lobby1 java -server -Xms1024M -Xmx1024M -jar spigot.jar
    echo "If you want to completely stop the server process now, press Ctrl+C before the time is up!"
    echo "Rebooting in:"
    for i in 5 4 3 2 1
    do
    echo "$i..."
    sleep 1
    done
    echo "Rebooting now!"
    done
     
    #1
  2. AcientCraft
    Offline

    AcientCraft

    Registriert seit:
    29. Dezember 2015
    Beiträge:
    3
    Hallo,

    ich glaube, das Problem liegt in deinem Skript. Du startest deinen Server mit diesem Skript alle 5 Sekunden komplett neu in einem eigenen screen. Das ist Nachteilhaft.
    In diesem Forum gibt es bereits ein gut funktionierendes Skript, du findest es hier:
    https://minecraft-server.eu/forum/threads/linux-server-restart-script-hilfe.21553/

    Für dich angepasst würde das Skript so aussehen:
    Code (Text):
    1. #!/bin/bash
    2. while true
    3. do
    4.         java -server -Xms1024M -Xmx1024M -jar spigot.jar
    5.         datum=`date '+%y-%m'-%d_%H-%M`
    6.         mkdir -p ../logs/$datum
    7.         mv crash-reports/* ../logs/$datum/
    8.         mv server.log ../logs/$datum/
    9.         sleep 5
    10. done
    Lege also eine Datei an, weise die entsprechenden Rechte zu und starte den Server
    Code (Text):
    1. nano start.sh
    2. chmod +x start.sh
    3. screen -AmdS MeinServer ./start.sh
    Wenn du den Server nun restarten möchtest, kannst du dies auslösen, indem du /stop ingame ausführst.

    Zur Erklärung: Das Skript wird aufgerufen und "macht" so lange wie es geht erst einmal
    Code (Text):
    1. java -server -Xms1024M -Xmx1024M -jar spigot.jar
    Dies ist, wie du sicher weißt, dein Server, der gerade läuft. Solange der Server also läuft, macht das Skript erstmal nichts anderes. Wenn du den Server dann mit /stop stoppst, wird der Rest abgearbeitet. In diesem Fall werden die CrashReports und Serverlogs verschoben und die Verzeichnisse werden nach der aktuellen Zeit benannt. Danach "schläft" das Skript 5 Sekunden und "macht" deinen wieder Server an, da dies ja als Erstes ansteht.

    Wenn du den Server endgültig stoppen willst, dann musst du das script beenden. Verbinde dich also mit dem screen, den du dir dafür zurechtgelegt hast und drücke Strg+C, bis das Skript beendet ist.
    Code (Text):
    1. screen -r MeinServer
    lg Max
     
    #2
    CubeneXHosting gefällt das.
  3. CubeneXHosting
    Offline

    CubeneXHosting

    Registriert seit:
    22. Mai 2014
    Beiträge:
    2
    Ich liebe dich <3
    Danke, dass du dir so viel Zeit für so eine Antwort genommen hast.
    Es klappt alles einwandfrei.
    Vielen Dank ! :)









     
    #3