禁止 openSUSE Tumbleweed 系统的 systemd-coredump

默认情况下,系统中的应用崩溃的时候会使得核心调用 systemd-coredump 来生成相关内存镜像以及一些调试信息。如果该应用运行时占用的内存大,那么这些调试信息会很快占满硬盘空间。应用崩溃是很常见的事情,但一般用户并不需要去调试它,多数人也不知道怎么调试。所以禁用它是个很好的选择。

禁用 systemd-coredump 的方法有些别致,因为 openSUSE 系统设置中并没有提供这样的设置。最简单的方法就是使用一个空文件来屏蔽默认的 systemd-coredump 配置文件,然后重新加载系统配置。

sudo ln -s /dev/null /etc/sysctl.d/50-coredump.conf
sudo systemctl daemon-reload

注:系统里原本是没有 /etc/sysctl.d/50-coredump.conf 这个文件的。真正的配置文件在 /usr/lib/sysctl.d/50-coredump.conf。但是如果在 /etc 中有这个配置文件,系统设定就优先使用它。而这个设置的优先级又是高于下面介绍的 systemd 的配置的优先级的。

当然也可以不那么激进的直接禁用 Core Dump,而只是限制它使用的存储空间大小。根据,

$ man 5 coredump.conf

的提示,限制大小就是在相应的 coredump.conf 里面设置参数 MaxUse=。默认是使用 磁盘空间的 10%。

man 5 coredump.conf 中指出的 coredump 配置文件使用的优先顺序是,

/etc/systemd/coredump.conf
/etc/systemd/coredump.conf.d/*.conf
/run/systemd/coredump.conf.d/*.conf
/usr/lib/systemd/coredump.conf.d/*.conf

所以我们可以直接修改 /etc/systemd/coredump.conf 文件。例如,

[Coredump]
Storage=external
Compress=yes
ProcessSizeMax=2G
ExternalSizeMax=2G
#JournalSizeMax=767M
MaxUse=1
#KeepFree=

就限制最大使用量为磁盘空间的 1%。下面的那个 KeepFree= 则是设置尽量保证磁盘剩余空闲空间不小于设定值(默认是 15%)。这两个参数保证系统会自动清理旧的 coredump 文件。

man 5 coredump.conf 中也指出了,默认的 core dump 文件存放位置是 /var/lib/systemd/coredump/(当 coredump.conf 中有 Storage=external 时);或者直接存放在 journal 中(当 coredump.conf 中有 Storage=journal 时)。

更新 2018-04-01

openSUSE Leap 15 中将会默认关闭 systemd-coredump。参见 SLE 15 的 bug #1083849

参考链接:

  • https://www.freedesktop.org/software/systemd/man/systemd-coredump.html
  • https://github.com/systemd/systemd/issues/659
  • https://bbs.archlinux.org/viewtopic.php?id=154511
  • http://ask.systutorials.com/1512/how-to-disable-the-coredump-function-of-systemd-on-linux
  • https://lists.opensuse.org/opensuse-factory/2018-01/msg00263.html

©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/disable-systemd-coredump-in-opensuse-tw/>。转载请保留此信息及相应链接。

2 条关于 “禁止 openSUSE Tumbleweed 系统的 systemd-coredump” 的评论

  1. 你好,
    今天在无聊,在网上下载了一些appimage游戏。结果出错了,卡了很久。而且,硬盘空间也变小了很多,估计是systemd-coredump生成的垃圾文件给造成的。现在需要把它找出来,然后删除它。我在/分区找了很久,但是都没有找到。
    麻烦告诉一下systemd-coredump生成的文件在哪里,然后我去删除它。

    谢谢

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>