linux core文件不生成原因及相关设置

linux core文件不生成原因及相关设置

程序出错产生core,core作为我们问题排查的依据,否则我们根本不知道发生了什么。所以产生core文件至关重要。

不产生core文件的原因排查 :

通常情况下,只要设置了ulimit -c unlimited,在程序崩溃后就会在当前目录下生成core文件

1.进程是设置 用户 id,当前用户并非程序文件的所有者

2.进程是设置 组 id,当前用户并非该程序文件的组所有者

1、2可以通过设置/proc/sys/kernel/suid_dumpable来改变,这样suid的也可以产生core文件

3.用户没有写当前工作目录的许可证

4.文件太大。core文件的许可证通常的用户读/写,组读和其他读。

系统core文件问题具体排查和相关设置

1. ulimit -a ,查看

core file size 如果是0,则表示没有打开core dump,我这里设置为不限制表示已经打开。

2. ulimit -c [kb] 设置core文件大小

ulimit -c 0 关闭core dump 开关

ulimit -c 100 core文件最大为100k

ulimit -c unlimited 不限制core文件大小

3.指定内核转存的文件名和目录

1)core文件自动加上进程号

echo 1 > /proc/sys/kernel/core_uses_pid

2)修改kernel参数,指定内核转存所产生的core文件的路径和文件名

可以通过在/etc/sysctl.conf文件中,对sysctl设置kernel.core_pattern的设置。

kernel.core_pattern = /var/core/core_%e_%p

kernel.core_uses_pid = 0

sysctl –p /etc/sysctl.conf

注:如果/proc/sys/kernel/core_uses_pid 这个文件的内容被配置成1,即使core_pattern中没有设置%p,最后生成的core dump文件名仍会加上进程ID。

这里%e, %p分别表示:

%c 转储文件的大小上限

%e 所dump的文件名

%g 所dump的进程的实际组ID

%h 主机名

%p 所dump的进程PID

%s 导致本次coredump的信号

%t 转储时刻(由1970年1月1日起计的秒数)

%u 所dump进程的实际用户ID

相关灵感

beat365简易版网页 MySQL索引详解

MySQL索引详解

📅 07-27 👁️ 6275
beat365简易版网页 在家怎样练出马甲线 七个动作让你变身小腰精
beat365简易版网页 《魔兽世界》体质圣典价格介绍
beat365简易版网页 内马尔的泡面头其实大有“深意”?足球界的发型比拼你看得懂么
beat365简易版网页 象牙制品如何保养

象牙制品如何保养

📅 07-25 👁️ 8287
365bet世界杯官网 视频为何会卡?一篇看懂流媒体背后的“缓冲”与“码率”机制
beat365简易版网页 如何用 7 种方法将文件从 iPhone 传输到Android
Bet体育365提款验证 打电话显示公司名称怎么取消

打电话显示公司名称怎么取消

📅 09-14 👁️ 3518
365bet世界杯官网 主皮是什么意思

主皮是什么意思

📅 09-11 👁️ 652