Ssh

SSH 連接斷開後無法重新連接到螢幕會話

  • December 4, 2015

我之前已經重新連接到一個長時間執行的螢幕會話screen -dr control。但是,有時此命令不會重新連接到螢幕,而是永遠掛起(10 多分鐘後我中止了)。這僅在 SSH 連接意外斷開時發生,而不是在螢幕正確分離時發生Ctrl-A d。其他開關,如screen -xscreen -D -RR也不起作用。

這篇文章建議殺死持有螢幕會話的 PTY,這將導致螢幕完成斷開連接。但是,它只是殺死了screen -dr control呼叫它的 shell。

例如:

$ 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

連結的文章建議殺死PID 7109的bash程序。這也會殺死screen -dr controlPID 7387的程序。之後,我仍然無法連接到螢幕。

SCREEN -S control啟動螢幕會話的程序init作為它的父程序,我顯然無法殺死它。

有沒有辦法重新連接到掛屏會話?

更新:這發生在使用核心 2.6.32-358.6.1.el6.x86_64 的 CentOS 6.4 上。這些外殼都是 bash 版本 4.1.2(1)-release。

正如 Jens Timmerman 所建議的,這種奇怪行為的最終原因是我使用 SSH ProxyCommand 和ncat. 在中間機器上殺死之後ncat,我可以重新連接到螢幕會話。

我覺得你應該試試

screen -DR 

下一次也是 - 憤怒的(大寫)呼叫應該強制它斷開中間 netcat 躍點持有的其他會話。

引用自:https://serverfault.com/questions/558664