以下是设置:
我有一台远程计算机,它直接从用户帐户 NN 在 CLI 中运行程序。如果我通过 SSH 进入同一个用户帐户 NN,是否可以从第二个实例中看到在第一个用户帐户实例中运行的程序的输出?
答案1
除非程序将其输出记录到文件中,否则我会说“不,不是直接的”。
然而,是实现您想要的方法。使用screen
,它是一个虚拟控制台多路复用器:
http://en.wikipedia.org/wiki/GNU_Screen
(您也可以使用tmux
它更现代,但我不熟悉,所以我的回答将谈论屏幕)。
安装完成后screen
:
- 登录远程系统。
- 开始
screen
(只需输入screen
,然后阅读介绍屏幕,按空格键)。 - 您将看到一个看起来像标准命令提示符的东西。它确实是,但是它位于 的一个
screen
虚拟控制台中。 - 从这里启动你的程序。
- 当您想让程序继续运行并注销时,请先“分离”
screen
。这会将其与实际终端“分离”,但 screen (以及其中包含的程序)会继续运行。程序认为它已连接到实际终端,因此不会看到任何差异。为此,请按ctrl-a
,然后按d
(ctrl-a
是screen
的控制前缀)。您将返回到命令提示符。 - 要重新连接到正在运行的
screen
实例,请键入screen -rd
。这将恢复screen
正在运行的程序。
当然,您可以断开连接,然后完全退出。当您重新登录时,您只需screen -rd
恢复“会话”即可。
Screen
可以做的远不止这些,您可以打开多个“控制台”,在它们之间切换,复制和粘贴数据,甚至使用分割视图和类似的花哨的东西。