打开应用程序coredump

本文介绍了在CentOS 7.2系统环境下开启和配置应用程序coredump的方法,包括修改`/etc/security/limits.conf`、添加到`/etc/profile`、使用`ulimit`命令,以及设置coredump文件保存路径和命名规则。通过这些步骤,可以确保系统生成和保存coredump文件,便于故障排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.系统环境:

    centos 7.2

2. 开启应用程序coredump:

  •      第一种方法,直接改配置文件,重启系统后仍然生效

  #vim /etc/security/limits.conf                                     

          *          soft     core  unlimited

  •     第二种方法,把修改core file限制的命令加到启动配置文件里

         #echo "ulimit -c unlimited" > /etc/profile              

  •     第三种方法,使用资源限制命令,修改core 文件大小为unlimited,它其实改的是shell的进程的资源限制,需要重启目标进程,而且重启后失效

         #ulimit -c unlimited                         

3. 修改coredump文件的保存路径

     需要提前创建corefiles目录,否则找不到这个目录,就无法生成coredump文件

     #mkdir  /tmp/corefiles               

     只是在内存生效,重启系统失效       

     #echo "/tmp/corefiles/corefile-%e-%p-%t" > /proc/sys/kernel/core_pattern     

    找到kernel.core_uses_pid所在配置文件,  在其中加入这一行,”kernel.core_pattern = /tmp/corefiles/core.%e.%p.%t “   ,可以永久生效  

     #sysctl --system                                

      core_pattern内核参数,是用来指定一个core dump文件的名字模板,名字的最大长度128字节,默认名字是core,可以加入以下%开头的模式字串:

        %%      用来输出一个 '%'符号

        %p      正在生成core dump的进程pid

        %P      global pid (init PID namespace)

        %i      在多线程环境中,发生异常的线程tid

        %I      global tid (init PID namespace)

        %u      正在生成core dump的进程uid

        %g      正在生成core dump的进程gid

        %s      触发进程生成core dump的信号量

        %t     core dump发生时,把当时的时间作为文件名的一部分

        %h      core dump发生时,把所在主机的主机名作为文件名的一部分

        %e      可执行文件的文件名

        %E      文件路径

另外,可以使用管道模式,如kernel.core_pattern ="|/xx/xx/xx",把core dump数据输出到另一个程序

重启系统后,可以检查是否生效

     #sysctl kernel.core_pattern                                          

4.通过强杀一个进程产生一个coredump文件

     #kill -s SIGSEGV pid

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值