如何强制从另一个 SSH 会话中分离屏幕?
Posted
技术标签:
【中文标题】如何强制从另一个 SSH 会话中分离屏幕?【英文标题】:How do I force detach Screen from another SSH session? 【发布时间】:2014-01-15 11:00:57 【问题描述】:我在 SSH 会话中运行了 Screen。终端冻结。重新启动终端后,该屏幕会话仍然认为它已连接。也许是的。也许我真的不知道那是什么意思。
我想从新的 SSH 登录附加到该屏幕会话。我不想终止那个 Screen 会话,因为那里正在发生重要的事情。 :)
我认为我有的选项(我都不知道如何解决):
如何分离 Screen 会话? 如何终止与 Screen 会话连接的 SSH 会话?【问题讨论】:
【参考方案1】:正如 Jose 回答的那样,screen -d -r
应该可以解决问题。这是两个命令的组合,取自手册页。
screen -d
分离已经运行的屏幕会话,screen -r
重新连接现有会话。通过运行screen -d -r
,您可以强制屏幕将其分离,然后恢复会话。
如果您使用大写字母-D -RR
,我会引用手册页,因为它太好了,不能放弃。
现在附上。不管这意味着什么,去做吧。
注意:通过“screen -list”检查会话状态总是一个好主意。
【讨论】:
您也可以使用screen -x
,这样打字速度更快,但并不完全等同。它将第二次附加会话而不先分离,从而导致多显示模式。
记住“屏幕医生”; screen -Dr
【参考方案2】:
试试screen -d -r
或screen -D -RR
【讨论】:
【参考方案3】:简答
-
在不弹出其他人的情况下重新连接:
screen -x
获取显示器列表:^A
*
,选择要断开的显示器,按d
解释答案
背景:当我在寻找具有相同问题描述的解决方案时,我总是得到这个答案。我想提供更明智的解决方案。 (例如:另一个附加屏幕的大小不同,我无法在终端中强制调整它的大小。)
注意:
PREFIX
通常是^A
=ctrl+a
注意:display也可以叫做:
“用户前端”(在屏幕上的at
命令手册中) “client”(此功能为detach-client
的tmux 词汇表) “终端”(我们在用户界面中称之为窗口)/取决于
1.重新附加一个会话:screen -x
-x
附加到未分离的屏幕会话而不分离它
2。列出此会话的显示:PREFIX
*
这是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
移动到选定的行。当“mousetrack”设置为开启时可用。space
刷新列表d
分离显示D
电源断开显示器C-g
、enter
或escape
退出列表
【讨论】:
以上是关于如何强制从另一个 SSH 会话中分离屏幕?的主要内容,如果未能解决你的问题,请参考以下文章