当前位置: 首页 > 面试题库 >

在Linux中使用Core Dump进行检查点/重新启动

晏修诚
2023-03-14
问题内容

可以使用进程的核心转储来实现Checkpoint /重新启动吗?核心文件包含该进程的完整内存转储,因此,从理论上讲,应该有可能将进程还原到转储核心时的状态。


问题答案:

不,没有内核的特殊支持,这通常是不可能的。内核维护着每个进程状态,例如文件描述符表,IPC对象等。

如果您愿意做很多简化的假设,例如没有打开的文件,没有打开的套接字,没有活动的IPC对象,没有共享的内存区域等等,那么 从理论上讲
是有可能的,但是实际上我不相信即使有这些让步,Linux也有可能。



 类似资料:
  • 我们正在构建一个使用Spark Streaming和Kafka的容错系统,并且正在测试Spark Streaming的检查点,以便在Spark作业因任何原因崩溃时可以重新启动它。下面是我们的spark过程的样子: Spark Streaming每5秒运行一次(幻灯片间隔),从Kafka读取数据 Kafka每秒大约接收80条消息 我们想要实现的是一个设置,在这个设置中,我们可以关闭spark流作业(

  • 问题内容: 我刚刚在Linux中获得了一个核心转储文件 我该如何附加gdb 我需要给它命令行参数。 示例执行: 帮助我进入gdb 干杯!! 问题答案: 如果您的核心文件刚刚运行 用进行事后分析。 如果您想在没有核心的情况下使用,请考虑 否则运行,然后向发出命令。 如果您的进程仍以pid 1234的身份运行,则可以将gdb附加到正在运行的进程。 您确实应该 阅读 gdb文档 。

  • 问题内容: 我正在尝试在我的c程序中检测从Linux关闭或重新启动。我发现程序可以使用signal(SIGTERM,handler)(SIGKILL,handler)。但是,如果用户也使用命令杀死该进程,这两个触发器也会触发。 他们说,在某些解决方案中,可以使用运行级别,但无法运行。在系统初始化运行级别之前,不知道该进程是否被杀死。我什至尝试将脚本放在rcx.d中,但仍然无法正常工作。 有人建议吗

  • 问题内容: 我想在这里做些奇怪的事情。我需要从一个守护进程启动一个logcat进程,该守护进程将在后台运行并打印到终端,而无需控制stdin。它是用于记录日志的,因此理想情况下logcat将打印日志消息,同时仍允许用户输入标准命令并从Shell初始化程序。这是到目前为止我拥有的守护程序的代码。该程序logcat启动并显示日志消息,但由于该程序已控制了stdin,因此我无法在stdin中输入任何命令

  • 问题内容: 我发现的唯一 好 方法是: (资料来源) 但这可靠吗?它适用于每个流程和每个发行版吗? 问题答案: 毕竟,Mark的答案就是解决之道,这就是/ proc文件系统在那里的原因。对于一些复制/粘贴的东西:

  • 问题内容: 我有一台笔记本电脑,其Intel Core i5 M 450 @ 2.40GHz显然具有VT-x,但没有VT-d。我有32位的Ubuntu 12.04,但想在其上运行基于虚拟64位终端的Linux。我如何知道BIOS是否已激活该VT-x功能而无需重新启动? 问题答案: 您可以使用 RDMSR 从 MSR工具 读取寄存器 IA32_FEATURE_CONTROL (地址 0x3a )。为