core文件生成位置及命名

天翼云开发者社区
• 阅读 17

本文分享自天翼云开发者社区《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的core文件则不会生成

ulimit -a 查看当前资源限制

四、测试

kill -6 测试是否产生core文件

点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
tomcat默认reload引起宕机
项目使用文件来保存修改,为了方便直接把文件放在src目录下;部署后发现过了一阵tomcat就会宕机;日志为:Oct18,20135:20:11PMorg.apache.catalina.core.StandardContextreloadINFO:ReloadingthisContexthasstartedO
Easter79 Easter79
4年前
springCloud 搭建eureka服务之天坑
这里我是采用gradle来管理jar包的。1、使用idea创建一个gradle项目。2、编辑settings.gradle文件rootProject.name'jtm'//include'jtm_core'//include'jtm_sys'//include'jtm_eureka'
inode节点扩容
本文分享自天翼云开发者社区《》,作者:2m1.inode概述在Linux系统中,每个文件和目录都有一个对应的inode节点,用于存储文件或目录的元数据信息,如:文件大小、创建时间、修改时间、权限等。当文件或目录被创建时,系统会为其分配一个inode节点。然
Stella981 Stella981
4年前
Linux内核Socket参数调优
可调优的内核变量存在两种主要接口:sysctl命令和/proc文件系统,proc中与进程无关的所有信息都被移植到sysfs中。IPV4协议栈的sysctl参数主要是sysctl.net.core、sysctl.net.ipv4,对应的/proc文件系统是/proc/sys/net/ipv4和/proc/sys/net/core。只有内核在编译时包含了特定的
Wesley13 Wesley13
4年前
NEO从源码分析看UTXO交易
_0x00前言_社区大佬:“交易是操作区块链的唯一方式。”_0x01交易类型_在NEO中,几乎除了共识之外的所有的对区块链的操作都是一种“交易”,甚至在“交易”面前,合约都只是一个小弟。交易类型的定义在Core中的TransactionType中:源码位置:neo/Core/TransactionType
Stella981 Stella981
4年前
Linux下coredump使用
01什么coredump当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中(core文件),这种行为就叫做CoreDump或者叫做"核心转储",利用coredump可以帮助我们快速定位程序崩溃位置。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,
使用gdb调试core文件
本文分享自天翼云开发者社区《》.作者:小谢不用谢GDB(GNUDebugger)是一个功能强大的调试工具,它可以用来调试C、C、ObjectiveC等多种语言编写的程序。调试core文件是GDB的一个重要功能,core文件是由操作系统生成的,它包含了程
HDFS目录配额(quota)不足导致写文件失败
本文分享自天翼云开发者社区《》,作者:5m问题背景与现象给某目录设置quota后,往目录中写文件失败,出现如下问题“TheDiskSpacequotaof/tmp/tquota2isexceeded”。omm@18939150115client$hdf
kafka数据同步到mysql
本文分享自天翼云开发者社区《》,作者:刘猛kafka安装使用dockercompose进行安装,dockercompose文件如下:version:'2'services:zookeeper:image:wurstmeister/zookeeperport
Nginx的请求处理
本文分享自天翼云开发者社区《》.作者:小谢不用谢三级标题Nginx的请求处理流程worker进程中,ngxworkerprocesscycle()函数就是这个无限循环的处理函数。在这个函数中,一个请求的简单处理流程如下:(1)操作系统提供的机制(例如epo
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
993
粉丝
16
获赞
40