博客
关于我
linux core文件设置
阅读量:791 次
发布时间:2023-01-31

本文共 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

转载地址:http://ybwfk.baihongyu.com/

你可能感兴趣的文章
LinkedBlockQueue 知根知底
查看>>
LinkedHashMap 源码解析
查看>>
LinkedIn工程经理眼中的数据世界格局
查看>>
LinkedList工作原理
查看>>
LinkedList源码分析--jdk1.8
查看>>
LinkedList的基本用法
查看>>
LinkedList(1):链表介绍和单向链表的实现
查看>>
LinkedList(2):双向链表的实现
查看>>
LinkedList(3):并发异常
查看>>
LinkedList(4):多线程LinkedList 不安全情况
查看>>
LinkHashMap源码
查看>>
linkin大话设计模式--适配器模式
查看>>
LinkSage:基于 GNN 的 Pinterest理解
查看>>
Linksys RE7000无线扩展器 RCE漏洞复现(CVE-2024-25852)
查看>>
LinkWeChat,唯一以开源为核心的SCRM
查看>>
link和@import的区别
查看>>
link和Import区别
查看>>
link标签中的integrity和crossorigin字段---web前端工作笔记015
查看>>
link标签的rel属性
查看>>
Linly-Talker智能数字人实时对话系统如何部署体验
查看>>