限制 XTerm 中的行输出速率?

限制 XTerm 中的行输出速率?

我有一个问题,我想在 XTerm 中运行的 Python 脚本同时输出太多行,这最终使脚本崩溃并显示错误消息:

close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

如何限制线路输出速率以免发生这种情况?我读到这在例如 tmux 中是可能的根据这个,但我找不到 XTerm 的任何类似选项。有什么帮助吗?

答案1

我怀疑限制 xterm 显示数据的速率(从伪终端主端读取数据)会产生任何影响。如果有的话,问题更有可能是相反的(xterm 读取速度不够快,因此 pty 缓冲区已满,因此写入尝试可能会阻塞或返回,并且使用非阻塞模式按请求写入的数据较少)

您始终可以通过管道传输输出(和/或错误),以pv -qL1000将输出速度减慢至 1000 B/s

myscript | pv -qL1000

或者说myscriptstdout 仍然是一个终端:

socat -u 'exec:myscript,commtype=pty,raw' - | pv -qL1000

相关内容