Ich habe mich zuvor wieder mit einer lang laufenden Bildschirmsitzung verbunden screen -dr control
. Manchmal wird dieser Befehl jedoch nicht wieder mit dem Bildschirm verbunden und bleibt für immer hängen (mehr als 10 Minuten, danach habe ich abgebrochen). Dies geschieht nur, wenn die SSH-Verbindung unerwartet getrennt wird und nicht, wenn der Bildschirm ordnungsgemäß getrennt ist Ctrl-A d
. Andere Schalter, wie zB screen -x
oder screen -D -RR
auch nicht funktionieren.
In diesem Beitrag wird vorgeschlagen , den PTY zu beenden, der die Bildschirmsitzung enthält, wodurch die Trennung des Bildschirms abgeschlossen wird. Es tötet jedoch einfach die Shell, von der screen -dr control
aufgerufen wurde.
Beispielsweise:
$ ps -ef | grep control | grep -v grep
nomad 7387 7109 0 13:05 pts/50 00:00:00 screen -dr control
nomad 15299 1 0 Nov27 ? 00:13:47 SCREEN -S control
$ ps -ef | grep bash | grep 'pts/50'
nomad 7109 7108 0 12:49 pts/50 00:00:00 -bash
Der verlinkte Beitrag schlägt vor, den bash
Prozess mit PID 7109 abzubrechen. Dadurch wird auch der screen -dr control
Prozess mit PID 7387 abgebrochen. Danach kann ich immer noch keine Verbindung zum Bildschirm herstellen.
Der Prozess, SCREEN -S control
der die Bildschirmsitzung gestartet hat init
, ist der übergeordnete Prozess , den ich offensichtlich nicht beenden kann.
Gibt es eine Möglichkeit, die Sitzung mit dem nicht reagierenden Bildschirm wiederherzustellen?
Update: Dies geschieht unter CentOS 6.4 mit Kernel 2.6.32-358.6.1.el6.x86_64. Die Shells sind alle bash Version 4.1.2 (1) -release.
screen -ls
in diesen "hängenden" Fällen?screen -d -r <session>
bedeutet "abnehmen und wiederherstellen", daher sollte es keine Rolle spielen, wenn Sie es nicht aus erster Hand abgenommen haben. (Und dafür tut es oft nicht ...)