Minecraft restart = neue Instanz?
Hallo.
Ich habe einen Minecraft Server auf nem Debian System.
Ich nutze ein Script um den Server automatisch bei Abstürzen oder Restarts neuzustarten.
Dieses Script nutze ich in Verbindung mit Screen.
Der Server wird täglich um 03:00 restartet.
Jedoch startet das restart Script zwar den Server neu, aber es wird auch eine weitere Instanz des Servers gestartet.
Was wiederrum heisst dass der Server täglich einmal mehr gestartet wird.
Wie kann ich diesen Fehler beheben?
Wieso öffnen sich denn täglich neue Instanzen, wenn der Server garnicht zum booten kommt?
Immer um etwas nach 03:00 wird eine neue Instanz gestartet, weshalb ich das mit dem Plugin verknüpfe.
Danke.
Scripte:
/// start.sh ///
#!/bin/bash
cd "$(dirname "/")"
screen -AmdS "SchattenSMP" ./home/server/minecraft/SchattenSMP/loop.sh
/// loop.sh ///
#!/bin/bash
cd "$(dirname "/")"
cd /home/server/minecraft/SchattenSMP/
while true; do
java -Xms6144M -Xmx6144M -jar SchattenSMP.jar nogui
echo "Restarting server in 20s... Use STRG+C to exit"
sleep 20s
done
///
Dazu fällt mir ein:
Meine anderen Minecraft Server nutzen das selbe script, haben aber kein Autorestart, da trifft das Problem nicht auf.
Der Server ist nicht erreichbar, wenn dieses Problem auftritt, da der Port belegt wird.
Wenn das Problem auftritt, ist session.lock in den Welten Ordnern, und die Properties werden resettet (die properties habe ich heute root als Besitzer gemacht, so dass der Server das nicht verändern kann)
1 Antwort
Welche Bukkit-Implementierung benutzt du?
Wenn es Spigot oder ein Fork davon ist, schau mal, was in der Spigot-yml unter settings.restart-script angegeben ist.
Wenn dort dein Script angegeben ist, ist das kein Wunder, da es ein weiteres Mal gestartet wird, während das erste in der while-Schleife festhängt und von dort ebenfalls eine Instanz startet.
Lösung: Nur eine der beiden Möglichkeiten nutzen. :)
Du solltst zudem was ins Skript implementieren, dass nach wenigen Restartvorgängen in kurzer Zeit das automatische Restarten aufgegeben wird. Wenn der Server nämlih aufgrund eines Fehlers beim Startvorgang beendet wird, hättest du eine endlose Restart-Schleife, die solange läuft, bis du es irgendwann bemerkst. Davon löst sich das Problem nicht.
Ich habe noch nie die Spigot jar anggefasst oder irgendwas ausserhalb des restart scripts geändert.
Ich habe nur das script ausm Internet kopiert und ein bisschen umgeschrieben, jedoch die Tasks des scripts nicht wirklich verändert.
Am Minecraft Server habe ich nirgendwo das Script hinterlegt, nur dass was ich oben angegeben habe.
Ich nutze Spigot, hab aber nichts am Server verändert bezüglich des restarts.
Danke