Ich möchte folgendes erreichen:
Durch Klicken auf einen Eintrag im Anwendungsmenü starte ich einen Minecraft-Server, der momentan auf meinem Ubuntu-Rechner läuft und das Terminalfenster (als Konsole) geöffnet lässt. Wenn ich zum Bildschirm zurückkehre, kann ich den Server dann von diesem „Konsolenfenster“ aus verwalten.
Ich habe dieses Skript aus einer .sh-Datei auf meinem Desktop ausprobiert, bis es funktionierte:
#!/bin/bash
screen
cd /media/terabyte/minecraft/
./start.sh
Aber das Terminal wird geschlossen und der Server läuft weiter, ich kann ihn aber nicht steuern und muss ihn über den Task-Manager beenden.
Antwort1
Um den Minecraft-Server in einer Bildschirmsitzung auszuführen und diese geöffnet zu halten, wenn der Minecraft-Server beendet wird, ändern Sie Ihr Skript in:
#/bin/bash
screen -m bash -c 'cd /media/terabyte/minecraft/ && ./start.sh ; bash'
Dadurch wird screen ausgeführt und innerhalb der screen-Sitzung werden die Befehle zum Starten des Servers ausgeführt. Sobald der Server gestartet ist, bash
wird aufgerufen, um ein Terminal geöffnet zu halten. Andernfalls würde die screen-Sitzung beendet.
Um diese Bildschirmsitzung sofort in den Hintergrund zu verschieben, schließen Sie die -d
Option (Trennen) ein. Anschließend müssen Sie zuerst eine Verbindung zu dieser Bildschirmsitzung herstellen, um die zu dieser Sitzung gehörende Bash-Eingabeaufforderung anzuzeigen.