【问题标题】:Storing entire process state on disk and restoring it later? (On Linux/Unix)将整个进程状态存储在磁盘上并稍后恢复? (在 Linux/Unix 上)
【发布时间】:2011-08-07 13:13:00
【问题描述】:

我想知道:是否有系统调用、库、内核模块或命令行工具可以用来将正在运行的程序的完成状态存储在磁盘上?

也就是说:我想将一个进程当前正在使用的内存、页面布局、堆栈、寄存器、线程和文件描述符完全转储到硬盘驱动器上的一个文件中,并且以后能够无缝恢复它,就像一个模拟器“保存状态”或虚拟机“快照”。

如果可能的话,我还希望拥有程序状态的多个“备份副本”,这样如果程序由于某种原因死机,我可以恢复到之前的执行点。

这可能吗?

【问题讨论】:

标签: process state store restore disk


【解决方案1】:

类似this?您也可以查看checkpointing page on wikipedia

【讨论】:

  • 谢谢! :-) 这看起来真的很令人印象深刻。但它仍然被维护吗? cryoPID2 的最后一次提交似乎是从 2009 年开始的。:-(
  • 不幸的是,该项目似乎至少是一个僵尸。看到这个答案(问题可能也是这个问题的副本):stackoverflow.com/questions/2134771/…
  • 您的链接(“this”)现在已失效。您可能希望链接到 code.google 之类的内容或其他内容。或sourceforge的链接。
  • 有人可以通过回答类似的问题来提供帮助(适用于 Windows)stackoverflow.com/questions/38263881/…
  • 我在编译它时遇到了很多麻烦...有人有预编译的二进制文件吗?
【解决方案2】:

您应该看看来自伯克利实验室的BLCR project。 这被几个 MPI 实现广泛用于提供 并行应用程序的检查点/重启功能。

【讨论】:

【解决方案3】:

一个core dump基本上就是这个,所以是的,一定可以得到。

您真正想要的是一种将转储重新存储为正在运行的程序的方法。这可能更难。

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 2022-01-24
    • 1970-01-01
    • 2021-08-03
    • 2012-08-02
    • 2012-07-29
    • 2014-12-21
    • 2012-05-13
    • 2012-09-17
    相关资源
    最近更新 更多