
Ich habe einen Linux-Server ohne Header, mit dem ich mich über SSH verbinde. Seit kurzem verwende ich ihn zusätzlich zu seinen normalen Aufgaben auch, um einen [Spieleserver][1] zu hosten, der in C# mit Mono geschrieben ist. Er funktioniert hervorragend! Wenn ich jedoch meine SSH-Sitzung trenne, hängt er sich auf und die Spieleclients trennen sich.
Um den Spieleserver zu starten, führe ich den Befehl aus mono KMPServer.exe
. Anschließend startet die Serversoftware und zeigt Konfigurationsinformationen an – der Spieleserver läuft allerdings erst, wenn ich eingebe /start
.
nohup
Ich kann es deshalb nicht verwenden - der Prozess zum Starten des Servers beinhaltet zunächst die Ausführung mit Mono und dann die Interaktion mit ihm, um einen " /start
"-Befehl auszugeben. Interessanterweise kann ich den Prozess auch nicht in den Hintergrund stellen (ist das normal für Mono?).
Gibt es eine Möglichkeit, es so auszuführen, dass der Spieleserver nicht geschlossen wird, wenn ich die SSH-Sitzung trenne?
Zusammenfassung:
- Die Serversoftware (toter Link entfernt) ist ein Drittanbieter-Multiplayer-Server (Teil eines Mods) fürKerbal Raumfahrtprogramm.
- Auf dem Linux-Server läuft Arch Linux x86_64.
- Die installierte Mono-Version ist 3.2.3
Antwort1
Klingt, als ob Sie eine Bildschirmsitzung verwenden können sollten. Wenn Sie mit dem Bildschirmtool nicht vertraut sind, lesen Sie die Manpages oder besuchen SieBeispiele für Bildschirmbefehle: Kontrolle über das Linux-/Unix-Terminal übernehmen.
Installieren Sie es zunächst mit pacman -S screen
. Starten Sie dann eine neue Sitzung mit screen mono KMPServer.exe
, führen Sie alle erforderlichen Schritte aus und trennen Sie die Sitzung mit Ctrl+ A+ D. Wenn Sie die Sitzung erneut verbinden müssen, verwenden Sie screen -x
.