回顾性地查看另一个 shell 的 bash 输出

tom*_*z74 3 linux bash shell

我有从 Linux 上的 shell 运行的 python 进程。目前我无法物理访问这台机器,只能通过 ssh 连接。
我知道 python 进程停止了,我怀疑这个 shell 中存在错误跟踪。
我可以获得 shell 的 pid,但我找不到显示此 shell 中内容的方法。基本上,我正在寻找一种方法来读取已经存在的内容,并且不会丢失此输出或关闭外壳。什么是 Linux 工具可以对已经运行的 shell 中发生的事情有第二个看法?

Kam*_*ski 5

ServerFault 上有这个答案

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

setterm -file log.txt -dump [ttynumbers]

但是,它无权访问回滚缓冲区,只能访问当前显示的内容。

如果你想窥探/dev/tty?,这将起作用/dev/pts/*,我认为。使用ps -e来识别有问题的外壳的TTY号码。在我的测试中,我/dev/tty2使用以下命令成功转储:

sudo setterm -file log.txt -dump 2
Run Code Online (Sandbox Code Playgroud)