在我的远程计算机上,已创建 xterm/shell(由另一个进程)。我可以通过 VNC 完全访问该 shell。但我真的想在本地计算机上使用文本模式 shell。
如何从本地 shell 控制现有的远程 shell?我无法创建新的外壳,这就是重点。但我对现有远程 shell 具有非特权访问权限。
答案1
你应该启动 shellscreen
或者tmux
因此它们可以轻松地重新连接到新终端。
这是通过screen
以下步骤完成的:
在某处启动 shell(例如在 VNC 中):
screen -S myshell
在其他地方重新连接 shell(例如使用 SSH 的新终端):
screen -x myshell
虽然强烈推荐上述方法,但它们不足以控制现存的壳。为此,您将需要一些额外的技巧。
重新附加现有 shell(不是使用screen
或启动的tmux
)的一种方法是使用reptyr
。
来自reptyr
的网站:
reptyr 是一个实用程序,用于获取现有正在运行的程序并将其附加到新终端。通过 ssh 启动了一个长时间运行的进程,但必须离开并且不想中断它?只需启动一个屏幕,使用reptyr 抓取它,然后终止 ssh 会话并回家即可。
您可以简单地使用进程 ID (PID) 并告诉 reptyr 重新附加它:
reptyr PID