seeseekey.net - Invictus Deus Ex Machina

Wenn man unter Linux eine Session mittels screen gestartet hat und diese später wieder aufrufen möchte, so nutzt man den Befehl:

screen -r

Unter bestimmten Bedingungen kann es vorkommen, das die Sitzung noch gebunden ist. Auf der Konsole würde das dann wie folgt aussehen:

# screen -r

There is a screen on:
	29711.ubuntu-release-upgrade-screen-window	(05/05/2016 04:09:56 PM)	(Attached)
There is no screen to be resumed matching 29711.ubuntu-release-upgrade-screen-window.

Vorkommen kann so etwas z.B. wenn man die SSH-Verbindung während einer Screen-Sitzung verliert. Damit man diese Screen-Sitzung wieder aufnehmen kann, muss die bestehende Bindung zuerst wieder gelöst werden. Dazu gibt es das Kommando:

screen -d

welches die Bindung löst. Bei mehreren offenen Sitzungen muss zusätzlich die ID der Sitzung angegeben werden. Anschließend kann die Sitzung wieder mittels:

screen -r

aufgenommen werden.

6 Kommentare

  1. Ich bin von screen auf tmux umgestiegen. Ich persönlich will nie wieder zurück. Die Server Client Lösung ist viel sauberer. Ein tmux client stirbt einfach wenn die SSH session stirbt. Man kann mehrere Server haben und sich einzelne tabs von verschiedenen Servern in seinen client holen ;). Ich habe früher minecraft Server in einem screen betrieben und ich vermute durch das viele ausgeben auf stdout ist die screen, in Wochen Abständen, abgestürzt.

    Antworten

    • Dem kann ich mich nur anschließen. Screen ist was für (alte) UNIX-Systeme, auf denen es nichts anderes gibt. Ansonsten ist tmux unter Linux heute state-of-the-art 😉
      Ich habe inzwischen für viele Umgebungen tmux-Scripte, die sich auf alle relevanten Systeme einer Umgebung bzw. eines Kunden (z. B. Web-, App- und DB-Server) verbinden – falls die Sessions auf dem Client mal weg sind. Sehr praktisch!

      Antworten

      • Jap, hab mir auch ein python init script geschrieben für meinen minecraft server. Man kann damit: start, stop, status, attach commandos ausführen. Da ein minecraft server nur sauber beendet werden kann wenn man „stop“ eingibt, macht mein init script genau das wenn es stop erhält. 🙂

        Antworten

  2. *hust* screen -x

    Antworten

    • From man page:

      -x
      Attach to a not detached screen session. (Multi display mode). Screen refuses to attach from within itself. But when cascading multiple screens, loops are not detected; take care.

      Antworten

  3. Nutze auch tmux seit vielen Jahren. Screen hat eigentlich nur noch eine Daseinsberechtigung um in Scripts zu benutzen, für eine „manuelle Nutzung nach dem ssh login“ unbedingt tmux ausprobieren.

    Ich hab vor zwei Jahren mal ein Text- und Videotutorial dazu gemacht.

    Text Tutorial: https://games4linux.de/anleitung-game-server-im-hintergrund-laufen-lassen-tmux/
    Video Tutorial: https://youtu.be/fXVZ5NMh9aw

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.