Aus gegebenem Anlass: Minecraft Server Update

Minecraft

Heute wurde durch das Entwicklerstudio Mojang der Update auf die Minecraft Version 1.4.2 freigegeben. Die Gelegenheit meinen Minecraft Client zu aktualisieren habe ich natürlich nicht ungenutzt verstreichen lassen…

Mit dem Update des Clients kann ich nun aber - erwartungsgemäß - nicht mehr auf meinen Multiplayer Server zugreifen, der bislang die Version 1.3.2 nutzt. Daher ist vorgegeben, womit ich den Abend verbringen werde.

Um die notwendigen Schritte für die Zukunft zu dokumentieren (meine Zukunft, es wird bestimmt noch einmal ein Update geben), werde ich sie an dieser Stelle zusammenfassen. Immerhin zeigt die Erfahrung (meine), dass ich für einige administrativen Aufgaben, zum Beispiel die Installation vom S/MIME Zertifikaten oder die Nutzung von apachectl und webappctl, immer wieder gerne auch auf meine eigenen Blogeinträge zurückgreife.

Das Update

Ich habe den Minecraft Server im wesentlichen parallel zu den Anleitungen für die Installation und die Einrichtung des launchd Service aufgesetzt. Es gibt einige Abweichungen beim minecraft.command und den Einstellungen in der .plist, doch diese sind für das Update hier nicht weiter interessant.

Logo

Zunächst einmal muss der Server in einen konsistenten Zustand für Backup und Update gebracht werden: die einfachste Lösung ist dabei, ihn einfach anzuhalten. Den eigentlichen Serverprozess mit einem Signal zu stoppen ist dabei nicht sinnvoll. Erst einmal wird dann gegebenenfalls der Zustand der Welt nicht sauber gesichert, zum anderen wird der Prozess in meiner Konfiguration durch launchd dann automatisch nachgestartet.

Das Anhalten erfolgt daher über launchctl. Mit dem vorbereiteten stop.command wird dann sichergestellt, dass der Server tatsächlich verschwunden ist. Danach erstelleeich ein Backup dieser Konfiguration. Es kann ja immer mal wieder passieren, dass ich auf diesen Stand zurück kommen möchte.

merlin:Users root# launchctl unload /Library/LaunchDaemons/net.minecraft.server.plist 
merlin:Users root# _minecraft/stop.sh 
MineCraft not running
merlin:Users root# ps auxw | grep mine
root           46053   0,0  0,0  2432768    588 s000  R+    7:19pm   0:00.00 grep mine
_minecraft     46043   0,0  0,0  2452940    792   ??  Ss    7:19pm   0:00.01 /sbin/launchd
merlin:Users root# tar cvzf  _minecraft_1.3.3.tgz _minecraft
...

Nun kann die aktualisierte Serverversion aus dem Internet geladen werden. Leider ist im verwendeten URL keine Versionsnummer enthalten. Daher bleibt immer eine Unsicherheit, ob man die gewünschte Version erhalten hat. Heute jedenfalls funktioniert diese Lösung und die gesuchte Version wird installiert.

merlin:Users root# cd _minecraft
merlin:_minecraft root# curl https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar -o minecraft_server.jar 
merlin:_minecraft root# chown _minecraft:_minecraft minecraft_server.jar
merlin:_minecraft root# 

Nun kann der Server auch wieder in die Startkonfiguration meines OSX Server eingetragen werden. Damit steht unser Multiplayer-Server wieder für die ungeduldige Nutzerschaft zur Verfügung.

merlin:_minecraft root# launchctl load /Library/LaunchDaemons/net.minecraft.server.plist 
merlin:_minecraft root# ps auxw | grep minecraft
_minecraft     46201  41,2  5,4  3711016 225468   ??  R     7:33pm   0:05.93 /usr/bin/java -Xmx1G -Xms1G -server -Djava.awt.headless=true -jar minecraft_server.jar
root           46205   0,0  0,0  2432768    588 s000  R+    7:33pm   0:00.00 grep minecraft
_minecraft     46203   0,0  0,0  2445260    972   ??  S     7:33pm   0:00.01 /usr/sbin/cfprefsd agent
_minecraft     46198   0,0  0,0  2452940    792   ??  Ss    7:33pm   0:00.01 /sbin/launchd
merlin:_minecraft root#  

Das war es eigentlich schon. Das Update verläuft so schmerzfrei und unproblematisch, dass ich schon darüber nachdenke, einen automatischen Updateprozess aufzusetzen. Die wenigen hier verwendeten Befehle könne auch in ein eigenes Shell-Skript übertragen werden und per cron oder launchd in regelmäßigen Abständen ausgeführt werden.

Aber jetzt erforsche ich erst einmal die Möglichkeiten der neuen Version.

Weitere Artikel: