如何强制从另一个SSH会话分离屏幕?

我在SSH会话中运行Screen。终端冻结。在重新启动Terminal之后,Screen会话仍然认为它是附加的。也许是吧。也许我不知道那是什么意思。

我想从一个新的SSH登录附加到该Screen会话。我不想杀死屏幕会话,因为重要的事情正在那里发生。: )

我认为我拥有的选项(没有一个我知道如何解决):

  • 我如何分离该屏幕会话?
  • 如何杀死该Screen会话附加到的SSH会话?
171371 次浏览

尝试使用screen -d -rscreen -D -RR

正如Jose回答的那样,screen -d -r应该可以做到这一点。这是两个命令的组合,摘自手册页。

screen -d分离已经运行的屏幕会话,而screen -r重新连接现有会话。通过运行screen -d -r,强制screen分离它,然后恢复会话。

如果你使用大写-D -RR,我引用手册页,因为它太好了,不能错过。

就在此时此地。不管那意味着什么,去做吧。

注意:通过“screen -list”检查会话状态总是一个好主意。

简短的回答

  1. 重新连接而不弹出其他:screen -x
  2. 获取显示列表:^A *,选择要断开连接的,按d

<人力资源>

解释回答

当我用同样的问题描述寻找解决方案时,我总是找到这个答案。我愿意提供更合理的解决方案。(例如:另一个附加的屏幕有不同的大小,我不能在我的终端强制调整它的大小。)

注意: PREFIX通常是^A = ctrl+a

< p >

注意: 显示也可以被称为:

  • “用户前端”(在屏幕中的at命令手册中)
  • “客户端” (tmux词汇表,此功能为detach-client)
  • “终端”(我们在用户界面中调用窗口)/取决于

1. 重新连接会话: screen -x

-x附加到一个未分离的屏幕会话不分离它

2. List 显示会话的: PREFIX * . List 显示会话的

它是PREFIX :displays的默认键绑定。 在屏幕中执行它,确定我们想要断开连接的另一个显示(例如较小的尺寸)。(您当前的显示将以更明亮的颜色/粗体未选中时显示)

term-type   size         user interface           window       Perms
---------- ------- ---------- ----------------- ----------     -----
screen     240x60         you@/dev/pts/2      nb  0(zsh)        rwx
screen      78x40         you@/dev/pts/0      nb  0(zsh)        rwx

使用箭头 ,选择目标显示,按d 如果什么都没有发生,您尝试分离自己的显示器和屏幕将不会分离它。如果是另一个,在一两秒钟内,条目将消失

ENTER退出清单。

(可选):为了使内容适合你的屏幕,回流: PREFIX F(大写F)

摘自屏幕手册页:

显示

显示当前连接的所有用户前端的列表(显示器)。这对于多用户会话非常有用。以下键可以在显示列表中使用:

  • mouseclick移动到选定的行。当“鼠标轨迹”设置为开启时可用。
  • space刷新列表
  • d分离显示
  • D电源分离显示
  • C-genter,或escape退出列表