Frage von cubenexger, 94

Spigot MC Server /Restart funktioniert nicht [Debian 8 ] [Screen]?

Guten Tag, Ich habe ein kleines Problem. Mein Minecraft 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

Antwort
von crunsch, 73

Ich habe das anders gelöst, bei mir löse ich alle 6 Stunden ein Cronjob aus:
Inhalt der Serverrestart.sh:

screen -R mc -X stuff "say Serverrestart in 2 Minuten $(printf '\r')"
sleep 60
screen -R mc -X stuff "say Serverrestart in 1 Minute $(printf '\r')"
sleep 60
screen -R mc -X stuff "say Serverrestart! $(printf '\r')"
sleep 2
screen -R mc -X stuff "stop $(printf '\r')"
sleep 30

rm -rf /dev/shm/mc/world_the_end
screen -R mc -X stuff "/dev/shm/mc/launch.sh $(printf '\r')"

Was passiert hier:
Der erste Block mit den Sleep Befehlen dient nur dem Hinweis, dass der Server in 2 bzw. 1 Minute neu startet. Der anschließende 30 Sec Sleep, gibt dem Server Zeit, ordentlich runter zu fahren.
Der folgende rm Befehl löscht das End, damit beim Reboot ein neues END erstellt wird.
Der anschließende Screen startet dann das launch Script.

Fertig.

Bei einigen Servervarianten, kann es sein, dass in einer CFG Datei vorgegeben ist, was nach dem Stop Befehl passieren soll. Du musst natürlich darauf achten, dass wie in meinem Beispiel, der Restart per Config ausgeschaltet sein muss.
Alternativ kannst Du auch den Aufruf des launch Scripts weg lassen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten