当前位置: 首页 > 文档资料 > systemd 中文手册 >

coredump.conf 中文手册

优质
小牛编辑
133浏览
2023-12-01

名称

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)