暂时控制 shell

暂时控制 shell

在我的办公室计算机(运行 Scientific Linux 6.3)上,我有几个窗口在单独的终端仿真器中运行一些进程 ( /dev/pts/)。我经常从 iPad 使用 iSSH 连接到我的办公室计算机,但我只能看到已写入文件的程序的结果,而无法看到每个终端正在显示的内容或控制终端。

我希望能够暂时将终端控制切换到我的 iPad iSSH 终端,查看结果,运行新命令(在我的 iPad 上的办公室终端上),然后让程序在我的办公室计算机上运行并返回到我的 iSSH终端,这样我就可以检查其他终端或干脆退出。由于我大部分时间都使用 3G 来连接我的 iPad,所以我不想使用任何图形依赖的方法,这样会非常慢。

据我所知,类似的事情reptyr似乎将进程的控制权从一个终端永久转移到另一个终端,我还没有看到任何人谈论(或询问)将控制权交还给原始终端。我想在完成后将其返回到原来的终端。

我真的很感激任何建议或帮助。提前致谢

答案1

我相信您只需要在会话中运行原始命令即可screen

然后,您可以断开与它的连接(屏幕继续运行并保持“虚拟终端”正确显示),并从另一个会话重新连接到它(即,从您的 iPad,或从另一台计算机,或从同一台计算机,当您回到正题)。

还有很多事情screen可以做;例如,允许同事在您使用运行屏幕会话时或在您离开运行屏幕会话时“潜入”,从而允许多个人偷看同一个“终端”。

简而言之:

在主机 A 的主终端上,以用户 ORIGINALUSER 身份:

screen
command (ex: vi /tmp/file)
CTRL+a d # which is 'CTRL' and 'a' at the same time, and then 'd'. This will 'd'etach from the screen session, while screen itself still runs! (and inside it the commands, shell and any still running invoked command, still run)

在另一个终端(或同一终端)上:

#log in the original machine (host A) as the same user ORIGINALUSER, and then:
screen -r   #will reattach to the latest running screen from that user. 

如果需要重新连接多个屏幕,请参阅屏幕手册页或上网。如果您无法重新连接,这也很有用:有一些方法可以“强制”它重新连接。

一旦真正完成:您只需退出屏幕内运行的外壳即可。这也将终止 screen 命令。

在屏幕中时:ctrl+A 很特殊,它允许您向屏幕发送命令。尝试:ctrl+A ?

相关内容