首页 文章

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

提问于
浏览
117

我在一个SSH会话中运行了Screen . 终端冻结了 . 重新启动终端后,该屏幕会话仍然认为它已附加 . 也许是 . 也许我真的不知道这意味着什么 .

我想通过全新的SSH登录来附加屏幕会话 . 我不想杀死那个屏幕会话,因为那里发生了重要的事情 . :)

我认为我有的选项(我都不知道如何解决):

  • 如何分离屏幕会话?

  • 如何杀死屏幕会话附加到的SSH会话?

3 回答

  • 1

    正如何塞回答的那样, screen -d -r 应该做到这一点 . 这是两个命令的组合,如手册页所示 .

    screen -d 分离已经运行的屏幕会话, screen -r 重新挂接现有会话 . 通过运行 screen -d -r ,强制屏幕将其分离,然后恢复会话 .

    如果您使用大写 -D -RR ,我引用手册页,因为它太好了,不能放弃 .

    在这里和现在附上 . 无论那意味着什么,就去做吧 . 注意:通过“screen -list”检查会话状态总是一个好主意 .

  • 192

    试试 screen -d -rscreen -D -RR

  • 37

    简答

    • 重新连接而不弹出其他人: screen -x

    • 获取显示列表: ^A * ,选择要断开的一个,按 d


    解释答案

    Background: 当我在寻找具有相同问题描述的解决方案时,我总是找到这个答案 . 我想提供更明智的解决方案 . (例如:另一个连接的屏幕有不同的大小,我不能强制在我的终端中调整它 . )

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

    注意:也可以调用显示器:“用户前端”(在屏幕上的命令手册中)“客户端”(tmux词汇表,此功能是分离客户端)“终端”(我们称之为用户窗口)接口)/取决于

    1. Reattach a session: screen -x

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

    **2. List displays of this session: 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)

    Excerpt from man page of screen:

    显示显示所有当前连接的用户前端(显示)的表格列表 . 这对多用户会话最有用 . 可以在显示列表中使用以下键:mouseclick移动到选定的行 . “mousetrack”设置为on时可用 . space刷新列表d分离显示D显示C-g,输入或转义的电源分离退出列表

相关问题