Linux系统core_pattern配置为%e仍追加PID的问题咨询
差异原因说明
- 该行为是CentOS/RHEL发行版对内核的自定义修改导致的,和上游内核标准逻辑不一致:红帽系发行版为了避免不同进程生成的core文件相互覆盖,修改了
core_uses_pid内核参数的生效规则,因此和官方文档描述的标准行为存在差异。 - 直接控制该特性的开关是
/proc/sys/kernel/core_uses_pid参数:该参数在CentOS中默认值为1,代表无论你是否在core_pattern中配置了PID占位符%p,内核生成core文件时都会自动在文件名末尾追加.PID后缀。 - 上游标准内核的规则为:
core_uses_pid仅在core_pattern为默认值core时生效,用户自定义core_pattern后该参数自动失效,不会额外追加PID。
匹配官方标准行为的方法
你可以通过关闭该自定义特性还原文档描述的行为:
# 临时关闭自动追加PID的特性 echo 0 > /proc/sys/kernel/core_uses_pid # 如需永久生效,可在/etc/sysctl.conf中添加以下配置 # kernel.core_uses_pid = 0
修改完成后重新触发进程崩溃,生成的core文件名就不会再自动追加PID后缀了。
内容的提问来源于stack exchange,提问作者Boris
相关产品推荐
相关产品推荐

