coredump.conf 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

coredump.conf, coredump.conf.d — 内存转储配置文件

大纲

/etc/systemd/coredump.conf

/etc/systemd/coredump.conf.d/*.conf

/run/systemd/coredump.conf.d/*.conf

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

描述

这些配置文件用于控制处理内存转储的 systemd-coredump(8) 工具的行为。 内核是否使用 systemd-coredump 来处理内存转储, 取决于内核的 kernel.core_pattern 参数(参见 sysctl(8) 手册)。 详见 systemd-coredump(8)core(5) 手册页。

配置目录及其优先级

默认设置是在编译期间确定的, 所以仅在确实需要修改默认设置的情况下, 才需要使用配置文件。位于 /etc/systemd/ 目录中的初始配置文件, 仅包含了展示选项默认值的注释, 目的在于方便系统管理员查看和直接修改。

如果软件包想要自定义某些默认设置, 那么必须将自定义的配置文件安装到 /usr/lib/systemd/*.conf.d/ 目录中。 /etc/ 目录仅供系统管理员使用。 系统管理员可以利用下面的逻辑来覆盖默认设置: 主配置文件最先被读取, 优先级也最低。 所有 *.conf.d/ 中的配置文件 都会覆盖主配置文件中的设置。 所有 *.conf.d/ 中的配置文件(无论位于哪个目录中), 统一按照文件名的字典顺序处理。 当多个配置文件都设置了同一个选项的时候: (1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准; (2)如果该选项可接受一个值列表,那么将会按照文件名的字典顺序将所有值列表拼接起来。 为了便于排序, 建议给所有 *.conf.d/ 中的配置文件 都加上 两位十进制数字的文件名前缀。

如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件, 那么最佳做法是在 /etc/ 目录中 创建一个指向 /dev/null 的同名符号链接, 即可彻底屏蔽 /usr/lib/ 目录中的 同名文件。

选项

所有选项都位于 "[Coredump]" 小节:

Storage=

在哪里保存内核转储: "none" 表示不保存内存转储, 但是会在日志中记录内存转储事件以及可能存在的回溯(backtrace); 默认值 "external" 表示将内存转储保存到外部 /var/lib/systemd/coredump/ 目录中; "journal" 表示将内存转储保存到日志中, 并按照正常的日志滚动规则进行滚动。

在将内存转储保存到日志中的时候, 也会遵守日志压缩设置,详见 journald.conf(5) 手册。 在将内存转储保存到外部文件中的时候,默认也会被压缩存储, 详见下文。

Compress=

接受一个布尔值, 表示在将内存转储保存到外部文件中的时候,是否要压缩存储。 默认值 "yes" 表示开启压缩。

ProcessSizeMax=

允许处理的最大内存字节数。 超过此大小的内存转储有可能会被保存下来, 但是肯定不会生成回溯(backtrace)。

同时设置 Storage=noneProcessSizeMax=0 将会禁止处理一切内存转储,同时仅为每个内存转储事件记录一条简略的日志消息。

ExternalSizeMax=, JournalSizeMax=

允许保存的最大内存字节数 (未压缩前)。

MaxUse=, KeepFree=

限制保存内存转储的外部文件对磁盘空间的占用。 MaxUse= 限制所有保存内存转储的外部文件总共允许占用的最大磁盘空间(默认值是磁盘总容量的10%), 当总占用空间超过限制时,将会自动删除最老的内存转储文件, 以确保可以不断保存最新的内存转储文件。KeepFree= 控制至少保留多少剩余磁盘空间(默认值是磁盘总容量的15%)。 注意,在处理内存转储的过程中, 磁盘空间的占用有可能会暂时突破这里所设置的限制。 此外, 保存内存转储的外部文件还有可能因为过于陈旧而被 systemd-tmpfiles(8) 删除。 注意, 将这两个选项中的任意一个设为零都表示关闭基于磁盘占用的清理。

所有选项的默认值都以注释的形式罗列在默认安装的 /etc/systemd/coredump.conf 模板文件中。

参见

systemd-journald.service(8), coredumpctl(1), systemd-tmpfiles(8)