Normalerweise melde ich mich von meinem Windows-Laptop aus mit PuTTY bei meiner Linux-Box an und führe dort screen aus. Als meine Firmenchefs beschlossen, meinen Laptop auf Windows 7 zu aktualisieren, froren meine PuTTY-Sitzungen ein. Normalerweise beende ich die PuTTY-Sitzung und füge dann entweder die screen-Sitzung erneut an (falls sie getrennt wurde) oder gebe ein „-d -r“ ein, wenn die screen-Sitzung nicht getrennt wurde, als meine PuTTY-Sitzung einfror.
Mein Problem ist, dass ich eine Bildschirmsitzung habe, die sich zunächst nicht trennen ließ. Ich würde Folgendes verwenden:
screen -d -r 6313.sessionName
aber der Befehl blieb einfach hängen.
Ich habe festgestellt, dass sich im Verzeichnis /var/run/screen// „Dateien“ befanden, die jeder meiner Bildschirmsitzungen entsprachen. Mir fiel auf, dass die hartnäckige Datei 700 Berechtigungen hatte, während die anderen (die getrennt waren) 600 Berechtigungen hatten.
Also habe ich die Berechtigungen für diese Datei auf 600 geändert. Auf dem Bildschirm wird sie jetzt als „getrennt“ aufgeführt. Wenn ich jedoch versuche, sie erneut anzufügen, bleibt der Befehl erneut hängen.
Verwenden von
ps aux | grep 6313
zeigt den Prozessstatus als „Ss“ an, was bedeutet, dass er sich in einem unterbrechbaren Ruhezustand befindet. Dies unterscheidet sich nicht von anderen getrennten Bildschirmsitzungen, die denselben Prozessstatus anzeigen.
Ich weiß nicht, wie ich diese Sitzung wiederherstellen kann. Irgendwelche Vorschläge?
Antwort1
Wenn ich screen
einen Befehl verwende, öffne ich den Socket normalerweise folgendermaßen:
$ screen -S <SOCKET_NAME>
und wenn ich anhängen oder erneut anhängen möchte, verwende ich:
$ screen -x <SOCKET_NAME>
Antwort2
Um eine Bildschirmsitzung zu trennen, sollten Sie Ctrl+ A+ verwenden D. Um die Sitzung anschließend erneut zu verbinden, verwenden Sie screen -r <pid>
. Wenn Sie eine Verbindung zu einer verwendeten Bildschirmsitzung herstellen möchten, verwenden Sie screen -dr <pid>
zuerst , um die Bildschirmsitzung zu trennen und dann erneut zu verbinden.