Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 关机后恢复屏幕缓冲区_Linux_Unix_Gnu_Gnu Screen - Fatal编程技术网

Linux 关机后恢复屏幕缓冲区

Linux 关机后恢复屏幕缓冲区,linux,unix,gnu,gnu-screen,Linux,Unix,Gnu,Gnu Screen,我有一个屏幕会话运行一个进程可能需要几天才能完成。服务器机房出现冷却故障,机器已关闭,现在已重新启动。有没有办法恢复我的屏幕缓冲区?我知道进程将被终止等,但我希望看到输出,并试图挽救一些工作。当然,它被缓冲在某个地方(尽管现在可能已经清理干净了?) 将来如果我知道我想查看/保存屏幕上的输出,那么最好的方法是什么 感谢您的帮助。屏幕将回滚缓冲区存储在内存中,而不是磁盘上。因此,无法从不再运行的进程中恢复它们。(虽然缓冲区被换出磁盘的可能性很小,但识别和恢复它们将非常困难。) 如果某个进程的输出很重

我有一个屏幕会话运行一个进程可能需要几天才能完成。服务器机房出现冷却故障,机器已关闭,现在已重新启动。有没有办法恢复我的屏幕缓冲区?我知道进程将被终止等,但我希望看到输出,并试图挽救一些工作。当然,它被缓冲在某个地方(尽管现在可能已经清理干净了?)

将来如果我知道我想查看/保存屏幕上的输出,那么最好的方法是什么


感谢您的帮助。

屏幕
将回滚缓冲区存储在内存中,而不是磁盘上。因此,无法从不再运行的进程中恢复它们。(虽然缓冲区被换出磁盘的可能性很小,但识别和恢复它们将非常困难。)


如果某个进程的输出很重要,请将其写入磁盘,方法是通过
tee
管道将该进程写入磁盘,或者在其打开的
屏幕上启用日志记录(使用命令,默认情况下映射为^AH)。

谢谢。真倒霉!我真的希望它被缓冲到一个临时文件或什么的。我以后一定会注意登录。那么默认情况下deflog可以用来打开日志记录?你知道这个设置是持久的,可以重新启动还是只运行一次屏幕?GNU屏幕上的选项都不是粘性的。如果您想在默认情况下应用设置,请编写一个
.screenrc
。@dashwuff您能提供一个参考(文档/代码),确认在内存中
screen
存储了回滚缓冲区吗?您知道是否有限制,如果刷新到磁盘,则会超过这些限制?屏幕手册并没有详细介绍应用程序的内部结构;我不认为它明确地说,任何地方的滚动存储在内存中。不过,绝对没有在磁盘上存储scrollback的规定。与scrollback相关的一些代码在屏幕上,但是源代码很乱,所以我不能真正指出更具体的内容。希望这有助于回答您的问题,@tututudaju?
屏幕的任务不是记录终端的输出。如果你愿意的话,你应该使用像脚本这样的东西。
screen
中可能有一个函数可以实现类似的目标,但是如果
screen
不需要我的请求就可以做到这一点,我会感到惊讶和担心。毕竟,这可能意味着要存储私有数据。我只是希望,如果我没有再次运行它,我可能会在某个地方找到一个缓冲区。当然,我的程序的最终输出保存在其他地方,但当它们在运行中期被终止时,我希望能找到它们停止的地方。下面的Dashwuff提供了一个很好的解释,以及我应该做什么。