【问题标题】:linux screen detatch and logoutlinux屏幕分离和注销
【发布时间】:2013-12-06 07:06:47
【问题描述】:

我喜欢 screen 实用程序,并且在我的服务器上广泛使用它,因此我设置了我的 .bashrc 文件以在登录时恢复我的 screen 会话。我缺少的唯一功能是从 ssh 会话中注销而无需显式分离/关闭屏幕会话。

我正在考虑一些可以运行screen -dS "mainScreen"; exit 的脚本,但这是不可能的,因为该脚本显然在分离指令之后继续在屏幕会话中执行并且不影响我的 ssh 会话,所以我唯一得到的是屏幕会话已终止。

有没有办法以原子方式执行“分离并退出”操作,导致屏幕继续运行并终止我的 ssh 会话?

【问题讨论】:

  • ~.关闭ssh会话
  • 我没有正确理解...~. 做了什么?
  • 如果你输入~.,它应该关闭ssh会话。屏幕会话将继续运行。
  • 我可能误解了~ 字符的含义,我尝试将其用作字符,Ctrl + .Alt + .,但这些都没有做任何相关的事情。
  • 不,它是一个文字~。执行cd ~username 时键入的相同字符。它是 ssh 的转义字符,可以用-e 更改。检查 ssh 的文档。

标签: linux ssh logout gnu-screen detach


【解决方案1】:

ssh 支持一种机制,您可以通过该机制直接向它输入输入,而不是向连接另一端的 shell 输入。该机制在您键入转义键时启用,可以使用-e 设置,默认为~。这对于各种功能很有用,例如在已连接的会话中设置端口转发或终止连接。您可以键入~? 以获取可用命令的完整列表。特别是,要终止会话,请键入:

~.

【讨论】:

    【解决方案2】:

    不要让ssh 运行登录shell(默认),而是直接运行screen

    ssh remoteHost -t screen -dRS "mainScreen"
    

    当您分离时,屏幕客户端会退出,这会导致ssh 关闭连接。

    (注意:我包含了 Steve 建议的 screen 命令,但您可以使用通常用来连接会话的任何命令。)

    【讨论】:

    • 你不需要 -r 选项来筛选吗?
    • 可能:) 我很久没用screen了。传递给ssh 的命令应该是您当前用于在登录时附加到会话的任何命令。
    • 实际上大 R (-dRS "mainScreen") 是最好的,因为如果会话不存在,它将创建会话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多