无法让分离的屏幕恢复

无法让分离的屏幕恢复

我使用 putty,无线连接不稳定,所以我使用 screen 来保持工作。我经常会断开连接,然后无法重新连接 screen。我运行它,screen -D -RR它就一直呆在那里。我尝试ctrl+z找回控制台,然后按ps aux | grep screen,然后kill -9查看所有结果,然后screen -D -RR再试一次,但结果还是一样。我尝试了您提到的任何 d 和 r 组合,但它仍然呆在那里。我的 screen 在那里,它什么也不做,至少不能恢复。

有人能提供关于如何恢复我的屏幕会话的任何提示、技巧或想法吗?

答案1

当我断开与活动屏幕的连接然后重新连接时,我看到了这种情况。 错误 #27462(“当原始会话丢失时,重新连接会停止”)描述了我所看到的问题。似乎发生的情况是,screen 试图通知持有它的 tty 它即将离开,但由于 tty 因连接断开而挂起,它必须等待超时(在某些情况下,超时时间长达五分钟)。

为了修复它,我这样做:

  • 找出哪个 tty 正在占用屏幕会话ps -ef | grep screen | grep pty
  • 找到与该 tty 关联的登录 bashps -ef | grep bash | grep $PTY
  • 杀死那个 bashkill -KILL $PID

这将使屏幕正确完成断开连接,并允许您正常重新连接。

看这里获取一个可以自动执行此操作的示例脚本。

答案2

我的屏幕会话也遇到了类似的问题。我给它们命名并将它们设置为多用户会话。我发现它列出了我的会话,但告诉我没有可重新连接的会话。然后我尝试:

screen -x <session_name>

它非常有效!

答案3

无论我使用哪种类型的连接,我都从未遇到过屏幕无法恢复的问题。我通常使用以下方法:

ssh myname@foo
screen -S sessionName
(do my work... get disconnected...)

ssh myname@foo
screen -d (just to make sure anything wasn't left attached)
screen -r sessionName

答案4

这个错误有可能对你造成影响吗?

http://savannah.gnu.org/bugs/?27462

您能否尝试他们推荐的解决方法并看看是否有效?

相关内容