You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL 8 如何设置将core文件生成在进程当前工作目录

RHEL 7/8 恢复core文件生成到进程当前工作目录的配置方法

RHEL 7开始默认使用systemd-coredump处理程序崩溃转储,默认将core文件统一存到/var/lib/systemd/coredump/路径,修改核心转储规则可按以下步骤操作:

临时验证方案(重启后失效,用于快速验证需求匹配)

  • 查看当前核心转储配置:执行命令 cat /proc/sys/kernel/core_pattern,默认输出为管道调用systemd-coredump的格式:|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h
  • 临时修改core文件生成规则:执行命令 echo "core.%p" > /proc/sys/kernel/core_pattern
  • 放开当前会话的core文件大小限制:执行命令 ulimit -c unlimited
    此时手动触发程序崩溃,即可在进程的当前工作目录下生成core.<pid>格式的转储文件,确认符合需求后可执行以下永久配置步骤。

永久生效配置

1. 修改内核core_pattern全局规则

新增sysctl配置文件/etc/sysctl.d/50-coredump.conf,写入以下内容:

kernel.core_pattern = core.%p
kernel.core_uses_pid = 0

执行命令 sysctl -p /etc/sysctl.d/50-coredump.conf 让配置立即生效。

2. 全局放开core文件大小限制

编辑/etc/security/limits.conf,在末尾添加两行配置:

* soft core unlimited
* hard core unlimited

3. 适配systemd管理的服务(如果你的程序由systemd托管)

systemd管理的进程默认不继承pam的资源限制,需修改全局systemd配置:
编辑/etc/systemd/system.conf,调整DefaultLimitCORE参数为:

DefaultLimitCORE=infinity

执行命令 systemctl daemon-reexec 让systemd配置生效,之后重启对应业务服务即可。

可选操作:禁用冲突服务

如果系统安装了自动错误报告服务abrtd,该服务会自动修改core_pattern规则,不需要该服务可执行以下命令关闭:
systemctl stop abrtd && systemctl disable abrtd

内容的提问来源于stack exchange,提问作者Mark Warren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:39:03