写点什么

core 文件生成位置及命名

  • 2025-12-11
    北京
  • 本文字数:1126 字

    阅读完需:约 4 分钟

本文分享自天翼云开发者社区《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 文件

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
core文件生成位置及命名_操作系统_天翼云开发者社区_InfoQ写作社区