我可以从 RAM 保存文件吗?

我可以从 RAM 保存文件吗?

更具体地说,情况是这样的。

我当时正在用空白文档操作 MyPaint,几个小时后,我没有保存任何内容(当然……),程序就死机了。我没有关闭它。

在 MyPaint 自动保存目录中,文件已损坏(仅限 1,4 ko)。

所以,我想知道我是否可以从 RAM 中转储文件(该过程仍在运行)以及如何转储。

谢谢。

答案1

比节省内存稍微好一点的方法是让程序为您保存您的工作。

首先获取正在运行的程序的 pid(进程 ID)。可以使用以下命令从命令行执行此ps操作:

$ ps x
  PID TTY      STAT   TIME COMMAND
(... lots of usual programs omitted)
 3039 ?        Sl    40:59 /usr/lib/someprogram
...
30263 pts/8    R+     0:00 ps x

假设我想触发someprogram清理并保存文件,假设它是一个专业级程序(按顺序尝试每个程序,直到一个有效):

$ kill -HUP 3039        # trigger the program's "terminal disconnect by hang up"
                        #  logic (which might save the file)
$ kill -INT 3039        # Interrupt
$ kill -STOP 3039       # Stop
$ kill -CONT 3039       # Continue

更稳妥的方法是将程序的内存写入核心文件。这样至少熟悉 MyPaint 内部结构的人可以将其加载到调试器中并重建数据以供后续使用。不过这很“困难”,需要专家花费数小时甚至数天的时间。

要转储核心,请尝试这些。您的系统配置中可能未启用核心转储。

$ kill -ABRT 3039       # abort
$ kill -QUIT 3039       # quit
$ kill -SEGV 3039       # illegal memory access
$ kill -TRAP 3039

答案2

您可能知道 RAM 不保存任何文件。所以您将无法从中恢复任何内容。我建议您下次重新做一次并经常保存(或设置一个脚本为您自动保存)。我很抱歉,但您无法做任何其他事情来恢复它(据我所知)。

相关内容