Steam Server laufen lassen ohne aktive SSH Console

  • Hallo
    ich habe bei mir auf dem Root einen Left4Dead 2 Server erstellt. Er funktioniert auch, jedoch wenn ich meine SSH verbindung trenne,wird der Server beendet. Wie kann ich den Server weiterlaufen lassen,auch wenn kein Nutzer mehr per SSH angemeldet ist ?

  • Wenn man den Server per folgendem Befehl startet:


    screen -AmdS sessionname serverstartbefehl


    Läuft der "Gameserver" im Hintergrund in einer Screensession. Wenn man die screen Session attached, z.B. mit screen -x sessionname muss man diese erst wieder Strg+A+D deattachen damit diese wieder im Hintergrund läuft.


    Ggf. ist der Gameserver screeninkompatibel.

  • Zitat von [netcup] Alex;15075

    Läuft der "Gameserver" im Hintergrund in einer Screensession. Wenn man die screen Session attached, z.B. mit screen -x sessionname muss man diese erst wieder Strg+A+D deattachen damit diese wieder im Hintergrund läuft.


    in eurer Doku steht

    Zitat

    Um das Fenster bzw. die Sitzung wieder in den Hintergrund zu schalten, benutzen wir die Tastenkombination Str+Alt+D. D steht für „detach“, also abtrennen (frei übersetzt deaktivieren).

    ;)

  • Oh, da hat sich ein Tippfehler eingeschlichen. Vielen Dank für den Hinweis.


    Die richtige Tastenkombination lautet Strg+A+D. Dies wird mit [detached] in der Konsole bestätigt.


    Nachtrag:


    Wenn die Ausgabe [screen is terminating] lautet, ist die Session und damit alle darin laufenden Prozesse beendet worden.


    Ob es eine offene Screensession gibt kann man sich mit screen -ls ausgeben lassen.

  • Sorry für OT:


    HobbyFr3ak, du postest gerade die vierte Frage, die eher im Einsteigerwissen anzusiedeln ist.
    Sonst bin ich zu solchen Leuten immer recht fiese, da sie uns und sich gefährden, aber du scheinst dir ja echt Mühe zu geben und bist nicht der typische DAU. Außerdem möchte ich mir nicht einbilden, ein Linux-Guru zu sein, bei Weitem nicht.
    OK, du hättest vielleicht noch keinen vServer mieten sollen, aber nun ist das Kind in den Brunnen gefallen und ich möchte dich dehalb hier aufmuntern, ruhig bei den Basics hier im Forum nachzufragen, bevor du sie einfach übergehst, weil du dich nicht traust nachzufragen. Wir sind eine sehr hilfreiche Community, die jedem gerne hilft, es sei denn, sie hauen hier Ich-bin-zu-faul-zum-googlen-Fragen in übler Rechtschreibung rein und lügen, was ihre Kompetenzen angeht in zwei folgenden Posts widersprüchlich ;)


    Zurück zum Thema:
    "screen -AmdS sessionname serverstartbefehl"
    Ich finde diesen Befehl recht unübersichtlich und schlecht zu merken. Deshalb habe ich mir genau einen gemerkt:
    screen -R [Sitzungsname]
    Wenn diese Screensitung bereits läuft, wird sie "reattached", wenn sie noch nicht läuft, wird sie erstellt.
    Du hast dann eine "neue" Shell, in der du einfach den Befehl tippen kannst. Das hat den Vorteil, dass du dann auch gleich siehst, ob der Server einwandfrei startet oder ob er Fehler oder Warnungen ausspuckt.
    Wenn du fertig bist, kommt die alte Tastenkombi: STRG+A => D oder STRG+A+D.
    Wenn du wieder drauf willst, reicht eben ein screen -R [Sitzungsname].


    Wenn man die -A-Options per Default drin haben möchte, ist ein Eintrag in der ~/.bashrc nötig, sofertn bash verwendet wird (meistens der Fall):
    alias screen='screen -A'



    Eine Alternative zu Screen:
    Starte den Server einfach in der Shell und drücke, sobald der läuft, STRG+Z. Mit fg kannst du ihn wieder in den ForeGround holen. Ich weiß nur gerade nicht, ob der Server fleißig weiterrennt.
    Nachtrag: Ich habe es eben mal quick and dirty getestet und eine Instanz von burnK7 laufen lassen (geht nur auf eine CPU der 8). Nach STRG+Z hatte der 0,0% CPU-Auslastung
    => Vergiss STRG+Z

    Mein Server:
    v(olks)Server 1. Serie: 2,5GHz, 1024MB RAM, 1024MB Swap, 2x60GB-Raid1-HDD, Traffic-Flat
    Node:
    78.46.117.9x | hos-tr2.ex3k4.rz7.hetzner.de

  • STRG-Z funktioniert schon. Damit wird der Prozess aber angehalten und in den Hintergrund geschickt. Mit dem Befehl bg läuft er dann im Hintergrund weiter, seine Meldungen erscheinen aber auf dieser Konsole. Um sich dann abmelden zu können, muss noch der Befehl disown verwendet werden, der endgültig die Kontrolle der Shell über den Prozess abgibt.


    Um den gleichen Effekt wie STRG-Z und bg zu erhalten, kann man auch befehl & schreiben.


    Großer Nachteil: Die Logmeldungen des Servers gehen verloren, mit Screen können sie noch eingesehen werden.

  • Zitat

    STRG-Z funktioniert schon. Damit wird der Prozess aber angehalten und in den Hintergrund geschickt. Mit dem Befehl bg läuft er dann im Hintergrund weiter, seine Meldungen erscheinen aber auf dieser Konsole. Um sich dann abmelden zu können, muss noch der Befehl disown verwendet werden, der endgültig die Kontrolle der Shell über den Prozess abgibt.


    Um den gleichen Effekt wie STRG-Z und bg zu erhalten, kann man auch befehl & schreiben.


    Großer Nachteil: Die Logmeldungen des Servers gehen verloren, mit Screen können sie noch eingesehen werden.


    Oookay, vielen Dank für die Aufklärung!

    Mein Server:
    v(olks)Server 1. Serie: 2,5GHz, 1024MB RAM, 1024MB Swap, 2x60GB-Raid1-HDD, Traffic-Flat
    Node:
    78.46.117.9x | hos-tr2.ex3k4.rz7.hetzner.de

  • Zitat von jonasw;15161

    Großer Nachteil: Die Logmeldungen des Servers gehen verloren, mit Screen können sie noch eingesehen werden.


    Code
    befehl > meinedatei.log & disown


    ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Zitat von killerbees19;15180
    Code
    befehl > meinedatei.log & disown

    ;)
    MfG Christian


    alternativ: programm > logdatei.log 2> &1
    oder: programm > logdatei.log 2> logdatei.err


    mit > schickst du die stdout (Standardausgabe) in eine Datei
    mit 2> schickst du die stderr (Fehlerausgabe) in eine Datei wobei &1 für das Ziel von stdout steht, also im ersten Fall alles in einer Datei landet. In beiden Fällen wird das Programm von der Konsole "abgekoppelt", weil die Ausgabe nicht mehr auf die Konsole geleitet werden muss. Du kannst dich getrost ausloggen.


    Screen ist aber etwas praktischer: Du kannst dich wieder in die Session einklinken und ggf. befehle auf der Konsole des Servers absetzen.

  • screen ist schon praktisch, und steam läuft auch mit screen sauber. zumindest bei css und cs.
    da left 4 dead genauso auf steam läuft, könnte ich drum wetten dass das kompatibel sein muss.


    was meiner ansicht noch eher dem "quick n dirty" entspricht, wäre ./steam parameter .... &
    einfach das & zeichen am ende ^^


    soweit ich weiss kann man damit aber nichts mehr in den vordergrund holen ^^