linux core文件设置
发布日期:2025-04-05 23:01:28 浏览次数:7 分类:精选文章

本文共 1385 字,大约阅读时间需要 4 分钟。

在Linux中处理core文件的常见问题解析

在Linux环境中,当进程非正常退出时,系统会生成一个core文件。这份文件是进程在崩溃或停止之前所占用的内存内容的转储,这种现象被称为core dump。以下将介绍如何查看、启用、配置以及处理这些core文件的相关知识。

1. 检查core文件是否被启用

首先,需要确认系统是否已经启用core dump功能。通过以下命令可以查询core dump的状态:

  • csh: limit coredumpsize = 0
  • bash: ulimit -a

检查输出结果中关于coredumpsize的值。如果值为0,说明core dump尚未启用;否则,core dump已开启。

2. 启用core dump并设置文件大小

通过以下步骤可以临时启用并设置core dump的文件大小:

  • 以root权限登录系统:
  • 编辑文件 /etc/security/limits.conf,添加以下内容:
  • soft no limits coredumpsize hard no limits coredumpsize

  • 临时指定大小,可以在当前终端执行:
    • csh: limit coredumpsize 4096000
    • bash: ulimit -c 4096000

注意:这些设置仅在当前活跃会话期间有效,一旦会话关闭,设置将失效。

3. 配置core文件生成路径

为防止core文件占用整个根目录,可以自定义其存储路径。

步骤:

  • 使用sysctl命令修改kernel.core_pattern和kernel.core_uses_pid的值:
    • 临时修改:
      • /sbin/sysctl -w kernel.core_pattern=/core/core.%e.%p
      • /sbin/sysctl -w kernel.core_uses_pid=0
    • 永久配置:
      • 编辑文件 /etc/sysctl.conf,添加以下内容:
      • kernel.core_pattern = /core/core.%e.%p

        kernel.core_uses_pid = 0

    • 加载配置文件:sysctl -p /etc/sysctl.conf

    配置说明:

    • %e 表示生成的文件名中包含进程ID(PID)
    • %p 表示当前用户ID(UID)
    • %s 表示停止信号
    • %t 表示生成core文件的时间戳
    • %h 表示主机名

    4. 生成core文件(用于测试)

    测试core文件的出现,可以使用以下命令强制生成core文件:

    • 以see用户身份登录:
    • ksh: kill -11 $$
    • 或者
    • bash: kill -11 $PPID

    5. 分析已生成的core文件

    要分析core文件,使用以下命令:

    • gdb <程序名> core文件名
    • 使用bt(Back Trace)命令查看backtrace信息。

    6.关闭core dump功能

    关闭core_dump可以使用以下命令:

    • 临时关闭:
      • csh: limit coredumpsize 0
      • bash: ulimit -c 0
    • 永久关闭:
      • 修改文件 /etc/security/limits.conf,设置coredumpsize为0:
      • soft no limits coredumpsize hard no limits coredumpsize

上一篇:Linux CPU优化性能实战
下一篇:linux coreseek-4.1安装

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月29日 09时34分39秒