minecraft-Server mit Linux starten und stoppen

Gepostet in: PC

Nachdem ich nun auch dem MineCraft-Fieber verfallen bin, habe ich mich dran gemacht und einen Server aufgesetzt.

Da es sich hierbei um eine Java-Geschichte handelt und das starten mittels ’screen‘ manchmal mehr als nervig ist, habe ich mir ein sehr einfaches start-stop-Script gebaut, welches ich hier vorstellen möchte :)

Schwupps, da ist’s auch schon…

Wir legen folgende Datei an und ändern die Pfade entsprechend:
sudo vi /etc/init.d/minecraft

#! /bin/bash
#
#Script for easy starting and stopping a minecraft-server
#Just replace the path on Line 10 with your path to the minecraft_server.jar
#You might need to adjust the minRAM and maxRAM too.
#
#https://www.janbpunkt.de
#
#Insert path to server.jar here
DIR=/home/minecraft
#Insert max. RAM you want Minecraft to use
MAX=4096M
#Insert min. RAM you want Minecraft to use
MIN=1024M

echo ""
echo ""

case "$1" in
start)

#check if there is a screen called "minecraft"
is_it_running=$(screen -ls | grep minecraft)
if [ "$is_it_running" != "" ]
then
echo "*** There is already a screen called 'minecraft' running. Aborting!"
else
echo "*** Starting minecraft-Server on screen 'minecraft'"
cd $DIR
screen -L -A -m -d -S minecraft java -Xms$MIN -Xmx$MAX -jar server.jar nogui

#check if it is running now
now_running=$(screen -ls | grep minecraft)
if [ "$now_running" == "" ]
then
echo "*** Starting failed!"
else
echo "*** Server started successfully!"
echo "*** You may now connect to console via ’screen -r minecraft'"
echo $status
fi
fi

echo ""
echo ""
;;
stop)
echo "*** Looking for running minecraft-Server via ’screen'"

#check if there is a screen called "minecraft"
is_it_running=$(screen -ls | grep minecraft)
if [ "$is_it_running" != "" ]
then
echo "*** Running minecraft-Server found:" $is_it_running
echo "*** Saving chunks with 'save-all'"
screen -S minecraft -X stuff $'save-all\n'
echo "*** Sending message to players, that server will shutdown in 30 sec"
screen -S minecraft -X stuff $'say Server will shut down in 30 sec\n'
echo "*** Message sent. Wait 30 sec …"
sleep 30
echo ""
echo "*** Stopping" $is_it_running "now."
screen -S minecraft -X stuff $'stop\n'

#wait a while and then test if screen is there
sleep 5
status_off=$(screen -ls | grep minecraft)
if [ "$status_off" == "" ]
then
echo "*** minecraft-Server stopped!" $status_off
else
echo "*** Something went wrong!" $status_off
fi
else
echo "*** No screen called 'minecraft' found. Is server really running?"
fi

echo ""
echo ""
;;
*)
echo $"*** Usage: $0 {start|stop}"
exit 1
esac

Man kann dieses Script auch nutzen, um den MineCraft-Server starten zu lassen, wenn der Wirt-Server mal neugestartet wird.

Einfach entsprechend nach rc2.d linken:

ln -s /etc/init.d/minecraft /etc/rc2.d/S99minecraft

Möchte man den MineCraft.Server auch sauber herunterfahren, wenn der Wirt-Server heruntergefahren wird, geht man ähnlich zu obiger Anleitung vor:

ln -s /etc/init.d/minecraft /etc/rc0.d/K99minecraft

Zu Guter Letzt kann man noch einen Hardlink nach /usr/bin setzen, damit man überall mit „minecraft start|stop“ den Server starten/stoppen kann

ln /etc/init.d/minecraft /usr/bin

Das sollte es eigtl. gewesen sein :)
Fragen? Anregungen? Kritik? Her damit!


Wenn Dir dieser Beitrag geholfen hat und/oder Du mich finanziell unterstützen magst, kannst Du dies gerne per Paypal machen.

Bei Paypal spenden


Alternativ kannst Du Dir meinen Amazon-Partnerlink in die Favoriten legen und Amazon bei Deinen zukünftigen Einkäufen darüber aufrufen:

Amazon Partnerlink

Es entstehen Dir dadurch keine Mehrkosten, ich erhalte aber eine kleine Provision.


Über einen Kommentar freue ich mich natürlich auch :-)


The following two tabs change content below.

Jan B-Punkt

CEO, bitch!
Ich bin Jan, der Hauptakteur bei janbpunkt.de. Naja, eigtl. bin ich sogar der einzige Schreiberling hier. 1980 in Eckernförde geboren, lebe ich aktuell in Kiel und habe Spaß an Technik, Gadgets und dem Internet. Außerdem fotografiere und zocke ich gern. Verständlich, dass die meisten Artikel sich daher auf eben jene Themen beziehen.

Neueste Artikel von Jan B-Punkt (alle ansehen)

Abonnieren
Benachrichtige mich bei
2 Comments
Oldest
Newest Most Voted
» Backup eines MineCraft-Servers mit rsnapshot - statt-porn.de
14 Jahre zuvor

[…] ja durch einen vorangegangenen Post bekannt sein dürfte, betreibe ich einen kleinen MineCraft-Server auf meinem […]

tehCrush
14 Jahre zuvor

Nette sache an sich. Bau noch eine restart) option ein, mach ne vernünftige init info und setz das ganze in die rc6, dann funzt das ganze auch bei einem simplen restart. mit der richtigen init info kannst du dir die rc*d kopien auch einfach ersparen. musst halt nur rc-d updaten, geht aber einfacher als das rumkopiere

Jan Beuth
14 Jahre zuvor
Reply to  tehCrush

Dein Kommentar ist wohl irgendwie im Spamfolder gelandet :-/
Irgendwann soll die Kiste auch mal ein "echte" init bekommen. Hab ich beim TS ja auch gemacht. Aber da mein Server eh nur alle Jubeljahre neugestartet wird, stört es mich derzeit nicht weiter :)