专栏中心

EEPW首页 > 专栏 > core文件生成位置及命名

core文件生成位置及命名

发布人:天翼云开发者 时间:2025-12-11 来源:工程师 发布文章

本文分享自天翼云开发者社区《core文件生成位置及命名》.作者:李****壮

一、core文件的生成

1.1  /proc/sys/kernel/core_pattern

       系统文件 /proc/sys/kernel/core_pattern 记录core 文件格式及保存目录。可以带绝对目录,或者相对目录。如果是绝对目录,则所有进程的core文件保存在该目录,如果是不带目录则core生成后保存到 该进程的可执行文件的同目录下,相对目录则基于可执行文件的目录。该配置对服务器内的所有进程生效。

       例如 可执行文件为:/usr/local/openresty/nginx/sbin/nginx

       1)/proc/sys/kernel/core_pattern文件内容:core-%e-%p-%t

       则生成的core文件为:/usr/local/openresty/nginx/sbin/core-nginx-226-1695021268

       2)/proc/sys/kernel/core_pattern文件内容:../core-%e-%p-%t

       则生成的core文件为:/usr/local/openresty/nginx/core-nginx-226-1695021268

       3)/proc/sys/kernel/core_pattern文件内容:/usr/local/core-%e-%p-%t

       则生成的core文件为:/usr/local/core-nginx-226-1695021268

1.2 文件的修改

       对 /proc/sys/kernel/core_pattern 内容的修改可通过系统命令及重写该文件的方式修改,通过vi 或 vim 文本编辑器方式修改文件,则修改不了

       1)系统命令

        sysctl -w kernel.core_pattern=core-%e-%p-%t 

       2)重写文件

        echo "core-%e-%p-%t" > /proc/sys/kernel/core_pattern
 
1.3 命名的特殊字符介绍
        %%:单个%字符
        %p:所dump进程的进程ID
        %u:所dump进程的实际用户ID
        %g:所dump进程的实际组ID
        %s:导致本次core dump的信号
        %t:core dump的时间(时间戳格式,由1970年1月1日记起的秒数)
        %h:主机名
        %e:程序文件名
 
1.4 其他
     各进程可以通过设置工作目录的方式调整core文件的生成位置,例如nginx可以通过
       working_directory /usr/local/openresty/nginx/logs;
     将core文件生成位置改为/usr/local/openresty/nginx/logs目录下。但是core_pattern为相对目录及绝对目录的设置仍会生效,只是相对目录基于的工作目录发生变化。
 
二、core文件名携带pid
2.1 /proc/sys/kernel/core_uses_pid
     系统文件 /proc/sys/kernel/core_uses_pid 决定core文件名是否携带pid,如果值为 1, 即使core_pattern中没有设置%p,最后生成的core dump文件名仍会加上进程ID。值为0或其他 则不会加上进程ID。
    例如:
            /proc/sys/kernel/core_uses_pid:1
            /proc/sys/kernel/core_pattern: core-%e-%t
            生成实际格式为:core-%e-%t.%p
 
2.2 设置方式
       1)系统命令
       sysctl -w kernel.core_uses_pid=1 

       2)重写文件

        echo "1" > /proc/sys/kernel/core_uses_pid

   
三、core文件生成大小
        通过 系统命令 ulimit 设置。例如
        ulimit -c unlimited core文件生成大小不限制。
        如果 ulimit -c <size>, 大于size的core文件则不会生成
 
        ulimit -a 查看当前资源限制
 
四、测试
        kill -6 <pid> 测试是否产生core文件


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

关键词: 底层测试 操作系统

相关推荐

Arm 旗下热门开源嵌入式操作系统 Mbed OS 将于 2026 年 7 月结束官方维护

人工智能大模型年代需要什么样的操作系统?红帽给出了当下更好的回答

在NIOSII里嵌入uCLinux 操作系统

周鸿祎:华为鸿蒙OS一定会成功 因为这三点原因

Active Object技术讲解 上

视频 2009-10-22

1 树莓派基础介绍

如何在Nios II系统运行uClinux操作系统

在NIOSII里嵌入uCLinux 操作系统(二)

中国科技企业别怕美国封锁!华为:我们给大家提供系统、存储等

BlackBerry QNX 对机器人手术持乐观态度,但表示自主性尚未到来

NIOS II系统入门实验

3 介绍进行树莓派开发需要的硬件

整车操作系统何以跻身智能汽车三大件?

Active Object技术讲解 下

视频 2009-10-22

华为推出配备国产CPU和操作系统的新型国产PC

在NIOSII里嵌入uCLinux 操作系统(三)

U S B 应用技术

2 树莓派型号指南

在NIOSII里嵌入uCLinux 操作系统(二)

把航空和IT技术带入汽车, 风河OS为“软件定义汽车”赋能

更多 培训课堂
更多 焦点
更多 视频

技术专区