[Linux]coredump文件设置

1.生成coredump文件

使用 ulimit -a 查看所有资源限制

sms@sms-vm:~$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7639
max locked memory       (kbytes, -l) 16384
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
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) 7639
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

core file size可以生成coredump文件的大小

  • 0:程序出错时不会产生core文件
  • 1024:代表1024k,core文件超出该大小就不能生成了
  • unlimited:core文件的大小不受限制

也可以使用ulimit -c查看core file size大小

sms@sms-vm:~$ ulimit -c
unlimited

如果core file size 大小为0,或者想更改生成coredump文件的大小限制

打开 /etc/profile
sudo vi /etc/profile 
文件末尾加上 
ulimit -c fileSize
fileSize是coredump文件最大限制

例如:
ulimit -c unlimited
生成coredump文件大小没有限制

/etc/profile文件修改完再使用
source /etc/profile
使修改立即生效

ps:
第二次修改的时候,使用 source
报了下面这个错误

-bash: ulimit: core file size: cannot modify limit: Operation not permitted

切换到root用户然后使用source就可以了

2.设置coredump文件名以及保存路径

core dump文件生成时,一般保存在执行程序的位置,默认文件名“core”,如果有新的core文件生成,会覆盖掉之前生成的core文件

进程pid设为文件扩展名

修改 /proc/sys/kernel/core_uses_pid 文件内容为: 1

  • 1:添加pid作为扩展名,生成的core文件名称为core.pid
  • 0:不添加pid作为扩展名,生成的core文件名称为core

修改文件命令: echo “1” > /proc/sys/kernel/core_uses_pid

修改core文件保存位置和文件名格式

修改文件命令:

echo "/corefile/core_%e_%s_%p" > /proc/sys/kernel/core_pattern

可以将core文件统一生成到/corefile目录下,产生的文件名为core_命令名_信号_pid

以下是参数列表:

  • %e - 添加导致产生core的命令名
  • %p - 添加pid
  • %u - 添加当前uid
  • %g - 添加当前gid
  • %s - 添加导致产生core的信号,以数字的形式表示,具体数字对应信号含义参见Linux信号列表
  • %t - 添加core文件生成时的unix时间
  • %h - 添加主机名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值