如何使用SSH访问运行进程的开放终端?

got*_*tqn 7 ssh

我有两台 Ubuntu 12.04 和 13.10 桌面版本的计算机。在 12.04 上,我打开了终端并在其中运行了进程。该过程正在显示一些状态信息,并允许即时更改一些设置。因此,我想从另一台 PC 访问 12.04 并管理该过程。

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

The*_*ude 6

我相信您正在寻找的工具是screen。请注意,由于它的工作方式,它会中断回滚。

设置如下:

屏幕 -mS myscreen

附上如下:

屏幕 -x 我的屏幕

连接后,您或您的伴侣就可以与屏幕互动。

从屏幕上分离如下:

Ctrl-A D

不要倒退,否则您会退出屏幕并带走您的伴侣!如果您在不分离的情况下关闭窗口,它也会关闭您伙伴的屏幕。

列出活动屏幕:

屏幕 -ls

附加到两个类似命名的屏幕之一:

屏幕 -x 12345 .myscreen

其中12345是屏幕的 PID(您从 screen -ls 获得)

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


小智 5

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

安装:

sudo apt-get install screen
Run Code Online (Sandbox Code Playgroud)

要启动屏幕终端:

screen -S nameOfScreen
Run Code Online (Sandbox Code Playgroud)

或者,如果您想在不立即连接的情况下创建一个屏幕:

screen -dmS nameOfScreen
Run Code Online (Sandbox Code Playgroud)

要立即在屏幕内启动程序,请在最后添加命令:

screen -dmS ftpstuff ftp [options for ftp]
Run Code Online (Sandbox Code Playgroud)

您还可以重新连接:

screen -r nameOfScreen
Run Code Online (Sandbox Code Playgroud)

并在不进入屏幕的情况下运行命令(对脚本有用):

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

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