Minecraft w sesji SCREEN’a
Istnieją działające rozwiązania wykorzystujące screen
, pozwalają one na uruchomienie serwera Minecraft w tle i umożliwiają na dostęp do konsoli gry.
Niestety wysyłanie poleceń ( np. /stop
) do serwera wymaga lekkiej gimnastyki i pomimo tego czasami po prostu nie działa.
Rozwiązania które znalazłem nie uznałem za wystarczająco niezawodne.
Dostęp do sesji screen’a z poziomu innego użytkownika należy odpowiednio skonfigurować, możliwe jest przypadkowe zamknięcie konsoli. Spotkałem, się też również z problemamy podwójnej daemonizacji - skrypt startowy nie może znaleźć PID serwera gdyż ten jest zakrywany przez screen który z kolei sam staje sie daemonem.
Przykład rozwiązania z użyciem komendy screen
:
http://minecraft.gamepedia.com/Tutorials/Server_startup_script
Coś lepszego
Głównym problemem do rozwiązania był dostęp do konsoli oraz bezpieczne wyłączanie serwera by ten zdążył zapisać wygenerowane światy. Miłym dodatkiem jest też logowanie błędów serwera do logów systemowych.
Skrypt MiencraftD: https://github.com/glorpen/gentoo-overlay/blob/master/games-server/minecraft/files/minecraftd.py
Zalety
logi serwera trafiają do logów systemowych
akcje start/stop możliwe do uruchomienia z konsoli
bezpieczne zatrzymywanie - to serwer Minecraft’a decyduje o momencie swojego wyłączenia
możliwość uruchomienia konsoli serwera
wysyłanie komend z linii poleceń prosto do serwera
Wymagania skryptu
python 2.7 lub 3.3+
python-daemon
lockfile
Użycie
usage: minecraftd.py [-h] [--instance INSTANCE] {start,shell,stop,cmd} ... Minecraft server daemonizer positional arguments: {start,shell,stop,cmd} start Starts minecraft daemon for given instance shell Connects to Minecraft shell of given instance stop Stops Minecraft daemon for given instance cmd Sends command to given instances shell optional arguments: -h, --help show this help message and exit --instance INSTANCE, -i INSTANCE Instance name
Gdzie zdobyć
Skrypt ten jest częścią mojego portage overlay które można znaleźć:
Gentoo overlay: https://github.com/glorpen/gentoo-overlay
Gotowe ebuild dla serwera Minecraft znajduje się pod adresem: https://github.com/glorpen/gentoo-overlay/tree/master/games-server/minecraft
Skrypt init.d
używany wraz z MinecraftD: https://github.com/glorpen/gentoo-overlay/blob/master/games-server/minecraft/files/minecraft.daemon.d
I jeszcze raz, skrypt daemonizujący aplikację: https://github.com/glorpen/gentoo-overlay/blob/master/games-server/minecraft/files/minecraftd.py