目前,我已将gnome终端(编辑->配置文件首选项->滚动)的回滚设置设置为10000行。我很容易打勾Unlimited,但是我担心这可能导致内存崩溃(如果我让一个程序在夜间运行大量输出,那么我就不会因此而崩溃)。
我的问题是:
这些回滚行是否存储在内存中,或者是否缓存在磁盘上的文件中?
如果我从10000更改为100000或更改为100万,我仍然安全吗?我需要考虑哪些参数(RAM,可用磁盘空间,打开的终端数)?选择无限安全吗?
根据非常有趣的博客文章,它显然存储在磁盘上已删除的文件中:
我可以看看
gnome-terminal
打开了哪些文件,因此lsof
可以进行救援。然后我发现它是偷偷摸摸的,它有许多名为/tmp/vteXYZ1tv
open的文件,但它已经删除了它们。因此,您在浏览时看不到它们,并且在程序关闭时它们将被删除。这是有道理的,这意味着当进程关闭时,无论如何(至少我认为),文件的空间可以回收都无所谓,即程序崩溃时我们不会得到剩余的文件,或者kill -9
。尽管我可以(可能还有其他方法)还原它们,但是可以这样做,ls -l
/proc/<gnome-terminal pid>/fd
以查看它们指向的内容。然后你可以cat
这些来制作一个新文件。这些只是终端输出的逐字记录。无压缩。没什么。事实证明,我的终端历史记录之一几乎是900 MB!但这只是在随机数据很快被吐出一段时间之后,在通常情况下不太可能发生。
我会再强调一下:海报已经运行base64 < /dev/urandum
了一段时间,希望增加内存或磁盘的使用-900MB将是特殊的使用情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句