Anfängerfrage: minetest-server zeitgesteuert laufen lassen

German
Post Reply
Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Guten Abend zusammen, ich habe vermutlich eine Anfängerfrage:
Auf einem kleinen gemieteten vserver (Debian) hatte ich jetzt einen Minetest Server aufgesetzt. Der lässt sich inzwischen über

Code: Select all

 /minetest/bin/minetest --server --config..
starten, fürs erste scheint alles wie gewünscht zu laufen.

Der Server ist nur für die Kids und soll nicht rund um die Uhr erreichbar sein, also nur zu gewissen Zeiten. Vermutlich sollte das wohl über crontab gelöst werden. Eigentlich müsste der Minetest-Server wohl als Service gestartet und gestoppt werden, was sich ja über crontab realisieren lassen sollte. Einige Hinweise gibt es ja bereits hier.

Aber: meine Installation ist nicht systemweit, sondern wie in github beschrieben über

Code: Select all

-DRUN_IN_PLACE=TRUE
Mir ist auch nicht klar, wie ich dem Service mitteilen kann, welche config und welche world er nehmen soll. Habt Ihr mir einen Tipp oder Link? Vielen Dank im Voraus!

User avatar
Festus1965
Member
Posts: 4181
Joined: Sun Jan 03, 2016 11:58
GitHub: Festus1965
In-game: Festus1965 Thomas Thailand Explorer
Location: Thailand ChiangMai
Contact:

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Festus1965 » Post

Blockbuster wrote:
Thu Feb 04, 2021 20:38
Mir ist auch nicht klar, wie ich dem Service mitteilen kann, welche config und welche world er nehmen soll. Habt Ihr mir einen Tipp oder Link? Vielen Dank im Voraus!

Code: Select all

minetestserver --port 3000 --config <pfad>/<file> --gameid <gameid> --world <pfad>/<welt> --logfile <pfad>/<file>
Human has no future (climate change)
If urgend, you find me in Roblox (as CNXThomas)

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Danke! Was ich aber nicht verstehe: bei mir existiert die Datei minetestserver nicht, im Ordner /bin liegt ausschließlich eine Datei minetest. Aber ich gehe jetzt einfach mal davon aus, dass es sich womöglich um die gleiche Datei handelt (habe es über github installiert/kompiliert). Auch nach erfolgreichem apt-get install minetestserver kommt ein command not found. Aber es läuft ja bereits wie oben beschrieben.

Außerdem habe ich wohl hier einen Teil der Antwort gefunden: https://wiki.minetest.net/Help:Setting_up_a_server
Demzufolge ließe sich der minetest-server über das folgende Skript starten:

Code: Select all

#!/bin/bash
while true
do
	 ./minetestserver --gameid minetest --worldname world
	sleep 10
done
Okay, das ließe sich über crontab realisieren - aber wie lautet der Befehl, um den Server wieder sauber zu beenden?

User avatar
debiankaios
Member
Posts: 910
Joined: Thu Dec 03, 2020 12:48
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by debiankaios » Post

Schau ma dir das hier an

soeren06
Member
Posts: 665
Joined: Fri Jan 03, 2020 15:17
In-game: soeren

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by soeren06 » Post

wie heißt der server ?

User avatar
Festus1965
Member
Posts: 4181
Joined: Sun Jan 03, 2016 11:58
GitHub: Festus1965
In-game: Festus1965 Thomas Thailand Explorer
Location: Thailand ChiangMai
Contact:

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Festus1965 » Post

Blockbuster wrote:
Fri Feb 05, 2021 09:29
Danke! Was ich aber nicht verstehe: bei mir existiert die Datei minetestserver nicht, im Ordner /bin liegt ausschließlich eine Datei minetest.
Minetestserver ist nur die abgespeckte Server Version, ohne Gui, geht aber auch mit

Code: Select all

minetest --server ...
Human has no future (climate change)
If urgend, you find me in Roblox (as CNXThomas)

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Hey, vielen Dank für die vielen Hinweise!! Auch bzgl Minetestserver und Minetest. Das war etwas verwirrend für mich. Wobei auf dem vserver nur eine Kommandozeile läuft, daher wäre wohl die andere Option ausreichend gewesen.

Die Tutorials bei YT schaue ich mir noch an, das sollte wohl meine Fragen beantworten, sonst frage ich nochmal nach.

Schönes Wochenende!!

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

[solved] Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Kurzer Zwischenstand:
Die Tutorials in YT kannte ich teilweise schon und sind durchaus geeignet, die technischen Hintergründe besser zu verstehen. Aber: die machen nur mit xserver Sinn, also nicht als blanker Server ohne GUI. Es war mir daher auch nicht möglich, auf diese Weise einen Server sauber aufzusetzen. Nach einigen Stunden hatte ich es aufgegeben, den Server irgendwie als Service laufen zu lassen, meist stimmten die Pfade nicht, anschließend die Berechtigungen.

Hab dann nochmal den Server komplett zurückgesetzt und es frisch anhand dieser Anleitung versucht: https://tuxinit.com/install-minetest-server-in-debian
Und: obwohl das nur zwei Handvoll einfacher Befehle sind, lief der Server sofort fehlerfrei als Service!! Also erste Empfehlung, sich in diesem Tutorial genau an die Anleitungen zu halten, das ist eine Sache von 5-10 Minuten.
Die Pfade lauten anschließend:
  • /etc/minetest/minetest.conf
  • /var/games/minetest-server/.minetest/worlds
  • /var/games/minetest-server/.minetest/mods
Jetzt muss ich nur noch rauskriegen, wie ich 'games' aktiviert bekomme, dann bin ich glücklich :-) und die Kids sowieso...

User avatar
Festus1965
Member
Posts: 4181
Joined: Sun Jan 03, 2016 11:58
GitHub: Festus1965
In-game: Festus1965 Thomas Thailand Explorer
Location: Thailand ChiangMai
Contact:

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Festus1965 » Post

"games aktivieren" ?
games muss je nach Installationsart in einem extra Schritt auch gecloned (herunter geladen) werden ,,,
(cd minetest, und dort wget ... games), damit es erst auch einmal vorhanden ist ...
dann kann es auch mittels der Option "--game xxx" angesprochen werden.
Ist also das gewollte game denn in MT Unter-Verzeichnis games vorhanden ?
Human has no future (climate change)
If urgend, you find me in Roblox (as CNXThomas)

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Ja, die Games sind wohl schon an der richtigen Stelle, eben im Ordner 'games'. An welcher Stelle benötigt man die Option '--games xxx'? Mein Problem dürfte sein, dass ich diese Option beim Service schlecht mitschicken kann, aber ich werde es versuchen. Mir ist noch nicht klar, an welcher Stelle ich den Aufruf von 'minetestserver --log...' manuell ändern könnte. Derzeit startet 'sudo systemctl start minetest-server' folgende Befehlszeile:

Code: Select all

/usr/lib/minetest/minetestserver --config /etc/minetest/minetest.conf --logfile /var/log/minetest/minetest.log
Hier müsste wohl das --game rein, aber wie ändere ich das? Vielen Dank und schönen Sonntag!!

User avatar
orwell
Member
Posts: 958
Joined: Wed Jun 24, 2015 18:45
GitHub: orwell96
IRC: orwell96_mt
In-game: orwell
Location: Raxacoricofallapatorius

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by orwell » Post

Ich erlaube mir mal, meinen alten Skriptsatz hier reinzuwerfen.
https://github.com/orwell96/minetest_server_initd
Die Idee von diesem Tool ist dass du ein RUN_IN_PLACE-Build hast (wenn ich das richtig verstehe war das anfangs der Fall) und dieses als Service starten willst. Es stammt von einem Server den ich mal gehostet hatte.

Der systemd-Service aus dem Debian-Paket scheint MT als root zu starten, das ist nicht so gut aus Sicherheitssicht. Ich habe damals einen nicht-sudo-user angelegt und der ganze MT-Kram lief dann unter diesem User.

Das Tool stammt aber von einem Betriebssystem ohne Systemd (nicht dass ich Systemd-Gegner wäre aber hat sich halt so ergeben), man müsste aber auch ohne Probleme einen Systemd-service dafür basteln können (oneshot glaube ich). Es hat auch ein recht durchdachtes Auto-Neustart-System was auf einen Neustart verzichtet wenn der Server gar nicht erst richtig startet (leistet also mehr als die eingebaute Systemd-Funktionalität).

Vielleicht bringt es dir ja was.

Was die Zeitsteuerung angeht: vielleicht erweiterst du einfach den 'initd' Mod um eine Funktion die das Ausschalten übernimmt und davor noch fancy Warnnachrichten ausgibt ala "Der Server schaltet sich in 10 Minuten aus". Starten kannst du über cron.
Lua is great!
List of my mods
I like singing. I like dancing. I like ... niyummm...

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Danke für die Tipp! Das schaue ich mir mal noch genauer an, zunächst hatte ich es ja auch mit einem separaten User versucht und ohne Service. Hier lassen sich die Parameter auch besser mitliefern. Übrigens lässt sich das game in der minetest.config vorgeben, inzwichen läuft minetest_game_new sauber auf dem Server. Leider produziert das animal-Paket häufiger Abstürze, sodass ich es deaktivieren musste. Und leider ohne Rückmeldung in der Log.
Die Zeitsteuerung über crontab läuft wie erwartet als minetestserver-Service einwandfrei, zumindest das Starten wäre aber auch mit der mintetest kein Problem gewesen..

Nur als Tipp: auf https://4noobs.de/viewtopic.php?t=19 habe ich gestern ebenfalls eine gute Anleitung gefunden (Serverinstallation). Der macht das auch über die mintetest als separaten User, nimmt ansonsten noch screen, damit das Programm weiter läuft. Bleibt für mich allerdings dennoch die Frage, wie ich den Prozess minetest automatisiert wieder sauber beenden kann, siehe Zeitsteuerung.

User avatar
orwell
Member
Posts: 958
Joined: Wed Jun 24, 2015 18:45
GitHub: orwell96
IRC: orwell96_mt
In-game: orwell
Location: Raxacoricofallapatorius

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by orwell » Post

Mit meinem Tool wäre das prinzipiell einfach 2 Cron-Einträge, einen für Start und einen für Stop:
als Minetest-User:

Code: Select all

$ crontab -e
0 9 * * *   /home/minetest/minetest-initd/initd.sh start > /dev/null
0 18 * * *   /home/minetest/minetest-initd/initd.sh stop > /dev/null
Du kannst sogar probieren ob @reboot klappt, dann braucht es gar keinen service

Code: Select all

@reboot   /home/minetest/minetest-initd/initd.sh start > /dev/null
(siehe auch https://wiki.ubuntuusers.de/Cron/)

Serverstatus abfragen einfach mit ./initd.sh status
Lua is great!
List of my mods
I like singing. I like dancing. I like ... niyummm...

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Danke!! Da das ja dann als Prozess läuft, müsste sich diese Lösung ja sogar parallel installieren/starten lassen, oder? Natürlich auf einem anderen Port. Dann müsste ich die aktuelle nicht erst entfernen. Der Service läuft derzeit ja unter root, der Prozess dann unter einem normalen User.

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

So, nach einem weiteren Fehlstart mit dieser Ubuntu-Anleitung habe ich endlich eine quick&dirty-Methode gefunden, den server stabil mit diversen Mods zu starten: Als Service lief der Dienst ja bereits, aber leider wenig stabil (wenngleich eben als root). Jetzt habe ich mir unter Windows einfach mal eine Welt mit diversen Mods 'zusammengeklickt', gestartet, beendet und dann die Verzeichnisse world, mod und textures hochgeladen bzw. die bereits vorhandenen ersetzt. Und siehe da! Läuft wunderbar und offensichtlich jetzt auch stabil. Weitere mods werde ich wohl auf die gleiche Weise manuell hinzufügen: lokal runterladen und über ssh wieder hoch, natürlich noch die world.mt anpassen. Ist sicherlich nicht die reine Lehre aber für unseren Mini-Server reicht es erstmal völlig.
Übrigens: der kleinste vserver bei Netcup für 2,69 EUR im Monat reicht offenbar bereits für einige User aus. RAM wird lediglich zu 1/5 bis 1/6 eingesetzt und die CPU geht nur hoch, wenn mehrere gleichzeitig durch die Gegend fliegen :-)

User avatar
orwell
Member
Posts: 958
Joined: Wed Jun 24, 2015 18:45
GitHub: orwell96
IRC: orwell96_mt
In-game: orwell
Location: Raxacoricofallapatorius

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by orwell » Post

Hey, noch ein Netcup-Nutzer :)
Lua is great!
List of my mods
I like singing. I like dancing. I like ... niyummm...

Blockbuster
Member
Posts: 13
Joined: Thu Feb 04, 2021 18:17

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by Blockbuster » Post

Spoiler
Die persönliche Authentifizierung durch den Netcup-Support ist der Hammer! ;-)

zeuner
Member
Posts: 55
Joined: Fri Dec 01, 2017 20:09
GitHub: zeuner

Re: Anfängerfrage: minetest-server zeitgesteuert laufen lassen

by zeuner » Post

Eine andere Moeglichkeit koennte die Oeffnungszeiten-Mod sein. Hier wuerde der Server weiterlaufen, aber die Mod kuemmert sich darum, dass niemand (ausser Spielern mit "server"-Privileg) ausserhalb konfigurierter Zeiten auf den Server geht. Der Vorteil gegenueber der Cron-Loesung ist meines Erachtens, dass man Spieler vor der Schliessung automatisch warnen kann.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests