为什么 systemd-coredump 将转储存储在内存本身中?

为什么 systemd-coredump 将转储存储在内存本身中?

我刚刚注意到我的大部分内存都被我最近杀死的几个进程的核心转储占用了。我为每个崩溃的进程运行了一个 systemd-coredump 进程(通常这些进程是 google-chrome,我强制退出了它,这解释了大量的内存消耗)。

我想知道的是,为什么不是将崩溃进程的核心转储到磁盘,而是启动一个将整个核心保存在内存中的新进程。

我的配置有问题还是应该是这样?如果是这样,我该如何改变这种行为?

目前,我已经通过链接禁用了核心转储的存储/dev/null/etc/sysctl.d/coredump.conf尽管我没有看到核心转储,但仍然希望保持其启用状态。任何想法/提示将不胜感激。

(该问题也发布在:https://bbs.archlinux.org/viewtopic.php?pid=1246237

答案1

默认情况下,核心转储写入磁盘,不应写入内存。请参阅核心手册页了解更多信息。您可以通过查看来查找并更改核心文件的路径和文件名/proc/sys/kernel/core_pattern

coredump.conf您可以通过重定向到来简单地禁用核心转储null

$ sudo ln -s /dev/null /etc/sysctl.d/coredump.conf && /lib/systemd/systemd-sysctl

禁用核心转储的另一种方法是更改设置limits.conf

相关内容