我有一个screen会话正在运行,该进程可能需要数天才能完成。服务器房间发生冷却故障,机器被关闭,现在已经重新启动。有没有办法恢复我的screen缓冲区?我知道进程将被终止等,但我想看到输出并尝试挽救一些工作。肯定会有地方存储这些缓冲区(虽然可能现在已经被清除了?)。
将来,如果我知道我要查看/保存屏幕输出,最好的方法是什么?
感谢任何帮助。
我有一个screen会话正在运行,该进程可能需要数天才能完成。服务器房间发生冷却故障,机器被关闭,现在已经重新启动。有没有办法恢复我的screen缓冲区?我知道进程将被终止等,但我想看到输出并尝试挽救一些工作。肯定会有地方存储这些缓冲区(虽然可能现在已经被清除了?)。
将来,如果我知道我要查看/保存屏幕输出,最好的方法是什么?
感谢任何帮助。
screen
将滚动缓冲区存储在内存中,而不是磁盘上。因此,无法从不再运行的进程中恢复它们。(虽然有可能缓冲区已被交换到磁盘上,但识别和恢复它们将非常困难。)
如果进程的输出很重要,请将其写入磁盘,可以通过将进程通过 tee
管道或启用 screen
标签上的日志记录(使用 log
命令,默认映射为 ^AH)。
.screenrc
文件。 - user149341screen
在内存中存储滚动缓冲区的参考文献(文档/代码)吗?你知道如果超过限制会刷新到磁盘吗? - tutuDajuju
screen
的任务不是记录终端的输出。如果你想要这样做,应该使用类似于script
的东西。也许在screen
中有一个函数可以实现类似的目标,但如果没有经过我的请求,screen
这样做会让我感到惊讶和有些担忧。毕竟,这可能意味着存储私人数据。 - Alfe