侏儒终端回滚线?

别科

目前,我已将gnome终端(编辑->配置文件首选项->滚动)的回滚设置设置为10000行。我很容易打勾Unlimited,但是我担心这可能导致内存崩溃(如果我让一个程序在夜间运行大量输出,那么我就不会因此而崩溃)。

我的问题是:

  1. 这些回滚行是否存储在内存中,或者是否缓存在磁盘上的文件中?

  2. 如果我从10000更改为100000或更改为100万,我仍然安全吗?我需要考虑哪些参数(RAM,可用磁盘空间,打开的终端数)?选择无限安全吗?

muru

根据非常有趣的博客文章,它显然存储在磁盘上已删除的文件中

我可以看看gnome-terminal打开了哪些文件,因此lsof可以进行救援。然后我发现它是偷偷摸摸的,它有许多名为/tmp/vteXYZ1tvopen的文件,但它已经删除了它们。因此,您在浏览时看不到它们,并且在程序关闭时它们将被删除。这是有道理的,这意味着当进程关闭时,无论如何(至少我认为),文件的空间可以回收都无所谓,即程序崩溃时我们不会得到剩余的文件,或者kill -9尽管我可以(可能还有其他方法)还原它们,但是可以这样做,ls -l /proc/<gnome-terminal pid>/fd以查看它们指向的内容。然后你可以cat这些来制作一个新文件。这些只是终端输出的逐字记录。无压缩。没什么。事实证明,我的终端历史记录之一几乎是900 MB!但这只是在随机数据很快被吐出一段时间之后,在通常情况下不太可能发生。

我会再强调一下:海报已经运行base64 < /dev/urandum了一段时间,希望增加内存或磁盘的使用-900MB将是特殊的使用情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章