如何使用 SSH 访问正在运行的开放终端?

如何使用 SSH 访问正在运行的开放终端?

我有两台电脑,分别安装了 Ubuntu 12.04 和 13.10 桌面版。在 12.04 上,我打开了终端并在其中运行进程。该进程显示一些状态信息并允许动态更改某些设置。因此,我想从另一台电脑访问 12.04 并管理该进程。

我已成功使用 SSH 连接到 PC,但我无法找到如何在终端中查看该进程。

答案1

我相信你正在寻找的工具是屏幕。请注意,由于其工作方式,它会破坏回滚。

设置如下:

屏幕-mS 我的屏幕

附如下:

屏幕-x myscreen

一旦连接,您或您的伴侣就可以与屏幕进行交互。

按照以下步骤从屏幕上分离:

Ctrl-A D

不要搞反了,否则你会退出你的屏幕,并带走你伙伴的屏幕!如果你关闭窗口而不分离,它也会关闭你伙伴的屏幕。

列出活动屏幕:

屏幕-ls

要附加到两个名称相似的屏幕之一:

屏幕-x12345.我的屏幕

在哪里12345是屏幕的 PID(您可以从 screen -ls 获取)

找到这个的来源了! http://wiki.networksecuritytoolkit.org/nstwiki/index.php/HowTo_Share_A_Terminal_Session_Using_Screen

答案2

如果您尝试访问交互式进程(如 ftp 或游戏服务器),则只能从创建它的终端对其进行控制。也就是说,您可以使用一个名为 screen 的程序来创建可以在其他终端内打开的虚拟终端。

安装:

sudo apt-get install screen

要启动屏幕终端:

screen -S nameOfScreen

或者,如果您想创建一个屏幕但不立即连接到它:

screen -dmS nameOfScreen

要立即启动屏幕内的程序,请在末尾添加命令:

screen -dmS ftpstuff ftp [options for ftp]

您还可以重新连接:

screen -r nameOfScreen

无需进入屏幕即可运行命令(对脚本有用):

screen -S gameServer -p 0 -X stuff "alert We're running a backup, expect a bit of lag.$(printf \\r)"

您可以通过按 Ctrl+A 再按 Ctrl+D 来断开与屏幕的连接。尝试按 Ctrl+A 再按 ? 来获取更多帮助,或者阅读手册页。

相关内容