Commande die beim Start eines Raspberry Pi automatisch ausgeführt werden sollten. Nun wie?
1.
Kann mir jemand helfen
Die 4 Befehle (Siehe Bild) einzeln nacheinander in den Terminal Fenster zu bekommen und daß direkt nach dem Start von Raspberry Pi ohne es selbst zu tun. Dann muss ich nämlich auch kein Monitor mehr benutzen. Kurz erklärt, die Befehle starten einen Minecraft "SERVER" Namens Nukkit. Ja schon nervig das 4 Befehle benötigt werden um einen kleinen Minecraft Server zu starten. Ausserdem habe ich im Internet keine Anleitung gefunden und auch nicht auf YouTube. Ich habe um die 1h gesucht und wie nämlich schon erwähnt, ohne Erfolg.
2.
Die nächste Frage.
Wie kann ich die Maximale RAM Nutzung von Server erhöhen? Zurzeit werden nur 2GB RAM benutzt und mein Raspberry Pi hat 4GB RAM. Der Server lagggt echt manchmal herum
Welchen (Web?)-Server verwendest du?
Chromuim. Aber er hat nichts mit dem Server zu tun
3 Antworten
Den ersten und dritten Befehl musst Du nicht immer ausführen. Bei der automatischen Ausführung von Befehlen kannst Du den Benutzer frei wählen, das wäre root. Damit ist der erste Befehl hinfällig. Der dritte Befehlt setzt die Rechte. Die setzt man genau einmal, damit sind die Recht der Datei gesetzt. Das muss man nicht ständig wiederholen.
Den automatischen Start kannst Du z. B. per Cron erledigen. Dazu braucht es einen entsprechenden Eintrag in der Crontab:
sudo su
crontab -e
Ans Ende der nun geöffneten Datei schreibst Du:
@reboot /home/pi/Desktop/minecraft-server && java -Xms 3G -jar nukkit.jar
Der Schalter -Xms setzt den Arbeitsspeicher, den habe ich von 2G auf 3G erhöht.
Ergänzung:
Es ist sinnreich, den Server aus dem Benutzerverzeichnis des Benutzers pi zu entfernen. Besser wäre, den Nukkit-Server im Verzeichnis /opt zu installieren, statt in /home/pi/Desktop.
Die Crontab muss dann natürlich angepasst werden.
Nach dem hochstellen von RAM auf 4 GB startet der Server mit Fehlern.
Wie lauten die Fehler?
Der Pi hat 4 GB RAM. Das Betriebssystem braucht auch RAM. Zudem bist Du hingegangen und hast ein Betriebssystem mit grafischer Oberfläche verwendet. Auch das frisst RAM. Ein minimales Betriebssystem ohne grafische Oberfläche wäre da ökonomischer.
Nächste Frage: Habe ich mehr Vorteile wenn ich den Server neu installiere aber das ins /opt ?
Das sind Gründe der Sicherheit. In Benutzerverzeichnissen sollte man keine Dateien ausführen. Zudem ist es nicht sinnvoll, vom Benutzer root eine Datei im Benutzerverzeichnis des Benutzers pi auszuführen. Das widerspricht dem Konzept von Linux.
Danke aber leider funktioniert es garnicht. Habe deinen Anweisungen gefolgt.
Der Server wird nicht automatisch gestartet
Was mir noch auffällt: Die Rechte sind viel zu großzügig gesetzt. Schränke das mal ein:
find /home/pi/minecract-server -type f -print0 | xargs -0 chmod 0640
find /home/pi/minecraft-server -type d -print0 | xargs -0 chmod 0750
chmod +x /home/pi/minecraft-server/nukkit.jar
Und: muss das überhaupt als root gestartet werden? Wo hast Du die Anleitung her?
Mir fällt gerade auf, dass die nukkit.jar nicht ausführbar sein muss. Der Befehl
chmod +x /home/pi/minecraft-server/nukkit.jar
ist also überflüssig.
Wir machen das jetzt mal richtig und konsequent:
Installiere den Nukkit-Server in /opt, sodass am Ende die nukkit.jar im Pfad /opt/minecraft-server/nukkit.jar liegt.
Nun legen wir einen separaten Benutzer an, unter dem der Server laufen wird:
sudo adduser minecraft --no-create-home --disabled-login --shell /bin/false
So angelegt hat der Benutzer minecraft kein Home-Verzeichnis, kann sich nicht einloggen und hat keinen Zugriff auf die Shell.
Wir setzen nun die Berechtigungen für das Verzeichnis /opt/minecraft-server:
sudo chown -R minecraft.minecraft /opt/minecraft-server
Jetzt legen wir eine Datei für systemd an. systemd ist ein sogenannter init-Manager, der den Start und das Stoppen von Prozessen verwaltet. systemd gehört zu Debian, ist also bei Dir vorhanden.
sudo nano /etc/systemd/system/minecraft-server.service
[Unit]
Description=Nukkit-Server
After=network.target
[Service]
User=minecraft
Group=minecraft
Restart=on-abort
WorkingDirectory=/opt/minecraft-server
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar /opt/minecraft-server/nukkit.jar
[Install]
WantedBy=multi-user.target
Du siehst die Schalter für den RAM, die musst Du ggf. anpassen. Xms setzt den initialen RAM beim Start des Servers, Xmx setzt den maximalen RAM.
Die Datei muss nun von systemd eingelesen werden, außerdem müssen wir sie aktivieren, damit der Server beim Neustart auch automatisch gestartet wird:
sudo systemctl daemon-reload
sudo systemctl enable minecraft-server
Nun kannst Du mit
sudo systemctl start minecraft-server
sudo systemctl stop minecraft-server
den Server starten und stoppen. Mit
sudo systemctl status minecraft-server
kannst Du den Status abrufen.
Die konfigurierte crontab benötigen wir nicht mehr, deshalb löschen wir die:
sudo crontab -r
Danke ich werde es heute noch ausprobieren. Ausserdem ist hier die komische Anleitung https://youtu.be/P3vK-Jtj0FM
Ist es schwierig den Server ins Opt zu installieren? Ich habe echt fast keine Erfahrungen damit und muss ich alles neu einstellen oder ist es dann einfach in Opt und nichts muss eingestellt werden? Ausserdem kann ich das Linux System neu installieren aber ohne Grafische Oberfläche ? Ah ist egal wenn ich alles von mache. Ich werde sowieso aus vielen Fehlern lernen.
Ausserdem ist hier die komische Anleitung https://youtu.be/P3vK-Jtj0FM
Grauenhaft. Warum macht man so ein Video? 17 Minuten für so wenig Inhalt. Das tue ich mir nicht an.
Ist es schwierig den Server ins Opt zu installieren?
Aktuell hast Du den Server in /home/pi/Desktop installiert. Die Installation ins Verzeichnis /opt geht genauso, es ist ja nur ein anderes Verzeichnis.
Ich habe echt fast keine Erfahrungen damit und muss ich alles neu einstellen oder ist es dann einfach in Opt und nichts muss eingestellt werden?
Was hast Du denn eingestellt? Da gibt es eine Datei server.properties oder so ähnlich, da sind die Einstellungen gespeichert. Die server.properties kannst Du vom bisherhigen Verzeichnis kopieren.
Ausserdem kann ich das Linux System neu installieren aber ohne Grafische Oberfläche ?
Es gibt das Raspberry Pi OS in drei Varianten:
- Raspberry Pi OS with desktop and recommended software
- Raspberry Pi OS with desktop
- Raspberry Pi OS Lite
Ich würde das letzte empfehlen. Das ist einigermaßen minimal und spart damit auch RAM. Du hast allerdings keine grafische Oberfläche und musst den Pi komplett über die Kommandozeile per SSH administrieren.
"Chmod: Beim setzen der Zugriffsrechte für '/home/pi/minecraft-server/' Die Operation ist nicht erlaubt" Bei mir kommen ständig Fehler. Ich kann genau garnichts ändern. Kann es wohlmöglich wegen der schlechten Anleitung auf YouTube sein? Ausserdem kennst du ein YouTube Video was mir zeigt wie ich so ein Minecraft Server installieren kann wo auch sich selbst einschaltet? Ich glaube eine komplette Neuinstallation wäre auch besser für mich. Wäre sehr hilfreich eine gutes YouTube Video zu finden
"Chmod: Beim setzen der Zugriffsrechte für '/home/pi/minecraft-server/' Die Operation ist nicht erlaubt"
Setze sudo davor. Du solltest Dich, bevor Du so einen Server betreibst, mal ein wenig mit Linux auseinander setzen. Ich hoffe Du gibst den Server nicht im Internet frei, das könnte ein richtig großes Loch im Heimnetz werden.
Ausserdem kennst du ein YouTube Video was mir zeigt wie ich so ein Minecraft Server installieren kann wo auch sich selbst einschaltet?
Ich kenne keine Youtube-Videos. Ich halte nichts von Youtube-Tutorials, ich kann damit nicht umgehen. Ich suche mir immer statische Informationen, klassisch niedergeschrieben und wenn sinnvoll auch bebildert.
Ich glaube eine komplette Neuinstallation wäre auch besser für mich. Wäre sehr hilfreich eine gutes YouTube Video zu finden
Die Installation des Betriebssystems dürfte nicht so schwierig sein. Da gibt es auch haufenweise Anleitungen zu. Wichtig ist, dass Du in die Boot-Partition der SD-Karte (die einzige Partition, die ein Windows-Rechner lesen kann) eine leere Datei mit dem Namen ssh legst (ohne Dateiendung!). Damit wird der SSH-Server aktiviert, sodass Du über das Netzwerk auf den Pi zugreifen kannst. Schließe den Pi mit einem Netzwerkkabel am Router an, ermittle die IP-Adresse und öffne eine SSH-Sitzung. Dazu verwendest Du am besten das Programm Putty, welches kostenlos verfügbar ist.
Die Installation des Minecraft-Servers ist quasi wie im von Dir genannten Video. Der Unterschied ist lediglich das Verzeichnis. In /opt kannst Du allerdings nur mit Root-Rechten arbeiten. Also musst Du vor jeden Befehl
sudo
setzen oder alternativ einmal zu Beginn
sudo su
Damit bist Du quasi root und kannst arbeiten.
Dann legst Du das Verzeichnis an:
(sudo) mkdir /opt/minecraft-server
Jetzt verfrachtest Du die nötigen Dateien da hinein. Die Installation von Java ist auch im Video beschrieben, wenn ich das beim Scrollen richtig gesehen habe.
Anschließend legst Du einen separaten Benutzer an, unter dem der Server laufen wird:
sudo adduser minecraft --no-create-home --disabled-login --shell /bin/false
So angelegt hat der Benutzer minecraft kein Home-Verzeichnis, kann sich nicht einloggen und hat keinen Zugriff auf die Shell.
Jetzt setzt Du die Berechtigungen für das Verzeichnis /opt/minecraft-server:
sudo chown -R minecraft.minecraft /opt/minecraft-server
Nun die Datei für systemd an. systemd ist ein sogenannter init-Manager, der den Start und das Stoppen von Prozessen verwaltet. systemd gehört zu Debian, ist also bei Dir vorhanden.
sudo nano /etc/systemd/system/minecraft-server.service
[Unit]
Description=Nukkit-Server
After=network.target
[Service]
User=minecraft
Group=minecraft
Restart=on-abort
WorkingDirectory=/opt/minecraft-server
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar /opt/minecraft-server/nukkit.jar
[Install]
WantedBy=multi-user.target
Du siehst die Schalter für den RAM, die musst Du ggf. anpassen. Xms setzt den initialen RAM beim Start des Servers, Xmx setzt den maximalen RAM.
Die Datei muss nun von systemd eingelesen werden, außerdem müssen wir sie aktivieren, damit der Server beim Neustart auch automatisch gestartet wird:
sudo systemctl daemon-reload
sudo systemctl enable minecraft-server
Nun kannst Du mit
sudo systemctl start minecraft-server
sudo systemctl stop minecraft-server
den Server starten und stoppen. Mit
sudo systemctl status minecraft-server
kannst Du den Status abrufen.
Das sollte schon alles sein.
Ich habe auch Sudo davor gesetzt. Genauso so wie du es mir gesagt hast. Ausserdem habe ich keine Geduld mich mit Linux auseinander zu setzen, Windows schon aber Linux ist zu kompliziert. Das ist so kompliziert ich habe nicht mal Ahnung was diese Commande machen. Deswegen brauche ich Tutorials sonst komme ich garnicht weiter. Naja ich werde versuchen Blind irgendwas reinzutippen vielleicht funktioniert es dann hmm wer weiß. Ich habe schon so viel Stunden verbracht nur um einen kleinen Server automatisch starten zu lassen und sowas ist so einfach man braucht nur paar Klicks aber bei mir funktioniert alles genau 0% Ich schlafe dabei fast ein. Hmmmm ah ich werde einfach alles komplett löschen und es neu machen wenn es wieder nicht funktioniert dann werde ich aufgeben und meinen Raspberry Pi für immer im Keller lassen. So viel Geduld habe ich leider nicht. Aber danke dir
Ausserdem habe ich keine Geduld mich mit Linux auseinander zu setzen,
Das ist schlecht, wenn man einen Server auf Linux-Basis betreiben möchte. Du wirst an jedem kleinen Problemchen scheitern.
Windows schon aber Linux ist zu kompliziert.
Nicht wirklich.
Das ist so kompliziert ich habe nicht mal Ahnung was diese Commande machen.
Deshalb habe ich es Dir erklärt.
Es ist nun einmal so, dass man sich mit einem Werkzeug auseinander setzen muss, wenn man es richtig benutzen möchte. Autofahren muss man lernen, an eine Nähmaschine setzt man sich auch nicht einfach so dran. Auch mit dem Mobiltelefon muss man sich auseinander setzen.
Danke aber ich werde es erstmal lassen. Ich habe schon zu viel Zeit damit verbracht und mehr möchte ich auch nicht verschwenden.
Du brauchst doch die ersten 3 Zeilen Code gar nicht...
Setze Debian neu auf, ohne grafischer Oberfläche und starte den Server per Sh Script...
Wie genau das geht, muss ich erst nachlesen, aber nicht mitten in der Nacht...
Bin kein Linux Experte, aber davon gibt's hier einige >> Die Nachts aber meist schlafen...
Der Franz hat ja schon geschrieben, was du brauchst...
Du musst es nur richtig umsetzen und vor allem die GUI weglassen...
Ich bin selbst ein Noob wenn es um Linux geht. Aber hat es noch einen Terminal Fenster auch ohne Grafische Oberfläche?
Ja klaro... Das hat es immer..
Und das kannst du auch von anderen PC 's mit GUI erreichen, über SSH... (mit Putty)
Hey,
komplett unabhängig von deiner Frage ist es wirklich in den aller aller seltensten Fällen sinnvoll irgendwelchen Dateien die Rechte 777 zuzuweisen, auch wenn es ein rein lokales System sein sollte, sollte man gar nicht erst damit anfangen.
Mfg Jannick (L1nd)
Ich habe keine Ahnung was du meinst. Ich habe diese Befehle nicht selbst geschrieben
Danke sehr ich werde es ausprobieren. Aber warum kann ich den RAM nicht hoch stellen? Nach dem hochstellen von RAM auf 4 GB startet der Server mit Fehlern. Nächste Frage: Habe ich mehr Vorteile wenn ich den Server neu installiere aber das ins /opt ?