Wie kann ich einen Bildschirm fortsetzen, den ich nicht trennen konnte?

8

Ich benutze den Bildschirm Bildschirm visuelle Konsolen . Um einen Bildschirm zu trennen, muss ich Ctrl+ drücken, Agefolgt von Deiner Sitzung, aber einige Zeit wird eine Sitzung geschlossen, ohne sie zu trennen. Es erscheint wie (Attached)folgt screen -list:

eduard@eduard-X:~$ screen -list
There are screens on:
        4561.pts-46.eduard-X   (30.03.2015 14:48:51)   (Attached)
        4547.pts-46.eduard-X   (30.03.2015 14:48:33)   (Detached)
        4329.pts-41.eduard-X   (30.03.2015 14:46:28)   (Attached)
        3995.pts-30.eduard-X   (30.03.2015 14:30:01)   (Detached)

Wenn ich versuche, es wiederherzustellen, antwortet der Bildschirm, dass es keinen Bildschirm gibt, der fortgesetzt werden kann:

eduard@eduard-X:~$ screen -r 4329
There is a screen on:
        4329.pts-41.eduard-X   (30.03.2015 14:46:28)   (Attached)
There is no screen to be resumed matching 4329.

Kann ich trotzdem einen Bildschirm fortsetzen, den ich nicht richtig abgenommen habe?

Eduard Florinescu
quelle
2
Bitte kopieren Sie Text und fügen Sie ihn ein, anstatt Grafiken zu verwenden.
Celada
@ Celada Ich habe Text anstelle von Screenshots hinzugefügt
Eduard Florinescu

Antworten:

12

Klar, mit

screen -d -r

Sie können auswählen, welcher Bildschirm wie gewohnt abgetrennt und wieder angebracht werden soll, indem Sie die PID (oder den vollständigen Namen) mit suchen screen -list.

screen -d -r 12345
Celada
quelle
8

Sie sollten Bildschirme mit Namen erstellen.

$ screen -S foo

$ screen -list
There are screens on:
        16994.foo       (03/30/15 14:05:13)     (Detached)
        20082.q (12/17/14 18:06:44)     (Detached)
        11008.w (11/12/14 10:52:43)     (Detached)
        1199.irc        (11/12/14 01:34:40)     (Detached)

Dann können Sie Bildschirme mit wieder anbringen

$ screen -dr foo

(die an 16994.foo angehängt wird und jeden anderen Prozess trennt) oder

$ screen -x i

(wird an 1999.irc angehängt, wodurch der Bildschirm mit einem anderen Prozess geteilt wird)

Das Benennen von Bildschirmen ist mir wichtig.

oPless
quelle
6

Nach einem Kommentar in dem Beitrag, den ich verwendet habe:

screen -x <session id>

Von der Manpage : Bildschirm -x

-x An eine nicht getrennte Bildschirmsitzung anhängen. (Multi-Display-Modus). Der Bildschirm weigert sich, sich von selbst zu verbinden. Bei der Kaskadierung mehrerer Bildschirme werden jedoch keine Schleifen erkannt. sich kümmern.

Ich habe auch ein wenig nachgeforscht und andere Verwendungsmöglichkeiten für diese Option entdeckt. Die Verwendung des Bildschirms für die Remote-Interaktion erklärt, dass Sie eine Verbindung von mehreren Terminals aus herstellen können, einer Art Remote-Konsolenfreigabesystem, das Sie praktisch in einer gemeinsam genutzten Umgebung sehen und eingeben können.

Dies kann verwendet werden, wenn Schüler unterrichtet oder Dinge mit einem Kollegen eingerichtet werden.

Sie können versuchen, eine Verbindung zu demselben Bildschirm von zwei verschiedenen Terminals mit derselben Bildschirm-ID herzustellen ( screen -x 4329). Was Sie in eine eingeben, sehen Sie in der anderen und umgekehrt.

Eduard Florinescu
quelle