minecraft-Server mit Linux starten und stoppen

3. Januar 2012 um 13:58 in Linux

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
#
#http://www.statt-porn.de
#

#Insert path to minecraft_server.jar here
DIR=/home/minecraft

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 -Xms256M -Xmx1024M -jar minecraft_server.jar nogui

#check if it is running now
status=`screen -ls | grep minecraft`
if [ "$status" == "" ]
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 der Beitrag gefallen oder gar geholfen hat, dann freue ich mich über einen entsprechenden Kommentar :) Natürlich freue ich mich auch, wenn Du den Beitrag mit Deinen Freunden teilst.

Schlagwörter: , , , , , ,


Trackback link

1 Trackbacks/Pingbacks

  1. Pingback: » Backup eines MineCraft-Servers mit rsnapshot - statt-porn.de on 29. Januar 2012

Schreib einen Kommentar

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>