linux 环境收集core文件步骤

Linux环境下进程发生异常而挂掉,通常很难查找原因,但是一般Linux内核给我们提供的核心文件,记录了进程在崩溃时候的信息,在C语言类的大型项目中,有助于深入定位。其配置流程如下:

1 查看生成core文件开关是否开启 ulimit -a

c 复制代码
core file size          (blocks, -c) 0   		// 表明未开启
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 2061196
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1048576
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2 ulimit -c kbytes可以设置系统允许生成的core文件大小;

c 复制代码
ulimit -c unlimited     // 不限制core文件的大小

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 2061406
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 524288
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 131072
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

上述方式不是永久生效的,要使其永久生效,可以进行如下设置

1 vi /etc/security/limits.d/20-nproc.conf

c 复制代码
*          soft    nproc     unlimited
root       soft    nproc     unlimited
postgres   soft    core      unlimited
postgres   hard    core      unlimited 

2 指定core文件的名字与生成路径

执行# vim /etc/sysctl.conf,进入编辑模式,加入下面两行

c 复制代码
kernel.core_pattern=/var/core/core_%e_%p
kernel.core_uses_pid=0

注释: %e dump文件名      %p 进程号

3 执行sysctl -p /etc/sysctl.conf,使其修生效。

参考:https://blog.csdn.net/luronggui/article/details/128728235

相关推荐
RisunJan12 小时前
Linux命令-rlogin(远程登录)
linux·运维
深圳恒讯13 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
蓝天下的守望者13 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn13 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
上海云盾-小余13 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹13 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
小顿的企业观察14 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
数智化转型推荐官14 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互14 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
AllData公司负责人14 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine