查看来自其他 shell的bash输出

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

我让 python 进程从Linux上的shell 运行。 目前我没有这个机器的物理访问权限,只能通过ssh连接。
我知道 python 进程停止了,我怀疑这个 shell 中有错误跟踪。
可以获得 shell的pid,但我找不到显示这里 shell 中的内容的方法。 基本上,我想找到一种方法来读取已经存在的东西,并且不会丢失这个输出或者关闭 shell。 对于已经运行的shell,Linux工具有第二个视图是什么?


回答 1:

ServerFault上有一个的应答:

setterm插件可以转储Linux虚拟控制台的内容:

setterm -file log.txt -dump [ttynumbers]

但是,它不能访问scrollback缓冲区,只对当前显示的。

如果你想看看 /dev/tty? 而不是 /dev/pts/* 我想这将工作。 使用 ps -e 来识别问题的shell 数。 在测试期间,我成功地将 /dev/tty2 与以下命令进行了转储:


sudo setterm -file log.txt -dump 2




回答 2:

当你无法查看已经发生的事情时,( 除非你能把那个会话) 有一个很好的工具叫做 tmux,它有助于。

简单安装( sudo apt install tmux ),运行( tmux ),然后在tmux终端内运行所需的进程。 然后点击 Ctrl+B,然后分离它- 这将使你回到前一个 shell,并且可以关闭终端。 然后,从SSH连接到它,或者打开另一个终端( 无论你喜欢什么) 并运行 tmux attach。 可以让你回到你的终端。 还有其他的选择,但是这是在不同终端会话中使用tmux的基本形式。


回答 3:

记录终端会话的传统工具是 script。 它通常在默认情况下,在大多数Unix和Unix类似的系统上。

一些终端仿真器,包括 xterm,以及一些 pc 终端模拟器经常使用在桌面机器的"控制台"设备( 例如 ) 中。 直接连接的键盘和显示器有一个,缓冲区,你可以滚回去看上一个活动。

实际上,这里的教训是( 最多数) TTY设备不会记录任何 --,它们只是通过。 一个必须安排一个录音,即通过启动 script 或者类似的录音工具或者使用相应的终端 模拟器。

( 也就是说,一些系统也有"控制台缓冲区",但它只记录内核本身的输出,并通常被称为 dmesg。)



VIEW  OUT  Shell  BASH  输出  viewing  
相关文章