如何控制现有的远程外壳?

bla*_*lah 5 command-line shell networking vnc

在我的远程机器上,(由另一个进程)创建了一个 xterm/shell。我可以通过 VNC 完全访问该 shell。但我真的想在我的本地机器上使用文本模式 shell。

如何从本地控制现有的远程 shell?我无法创建新的外壳,这就是重点。但是我对现有的远程 shell 具有非特权访问权限。

Lau*_*nen 5

您应该在 中启动 shell screen,tmux以便它们可以轻松地重新连接到新终端中。

这是通过screen以下步骤完成的:

  1. 在某处启动 shell(例如在 VNC 中):

    screen -S myshell

  2. 在其他地方重新连接 shell(例如使用 SSH 的新终端):

    screen -x myshell

虽然强烈建议使用上述方法,但它们不足以控制现有shell。为此,您将需要一些额外的技巧。

重新附加现有 shell(不是使用screen或启动的tmux)的一种方法是使用reptyr。

来自reptyr的网站:

reptyr 是一个实用程序,用于获取现有正在运行的程序并将其附加到新终端。通过 ssh 启动了一个长时间运行的进程,但必须离开并且不想中断它?只需启动一个屏幕,使用reptyr 抓取它,然后终止 ssh 会话并回家即可。

您可以简单地使用进程 ID (PID) 并告诉 reptyr 重新附加它:

reptyr PID
Run Code Online (Sandbox Code Playgroud)