首页 > 代码库 > ulimit开启coredump时核心转储
ulimit开启coredump时核心转储
[root@localhost ~]# ulimit -c 0 [root@localhost ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7384 max locked memory (kbytes, -l) 64 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) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 7384 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
可以看到默认core文件大小为0,也就是coredump时并不生成core文件,如果要开启coredump则可以执行 ulimit -c unlimited
另外可以看到core文件大小的单位是blocks,一个block的大小可以通过命令 /sbin/tune2fs -l /dev/sda1 查看
[root@localhost ~]# /sbin/tune2fs -l /dev/sda1|grep Block Block count: 512000 Block size: 1024 Blocks per group: 8192
可以看到每个block的大小是1KB,那么要设置最大core文件大小为1GB则执行 ulimit -c 1048576
因为保留core文件的目的在于调试程序,而限制了最大大小后core文件变得不完整也就失去了保留的意义,所以还是应该设置为unlimited
我的需求是总的core文件别占用太多空间,所以只能通过其他的方式实现:只保留最近6个最新的
ls -t /root/core.*|tail -n+6|xargs --no-run-if-empty rm
另外,关于core文件的文件名及格式可在 /proc/sys/kernel/core_pattern 中进行修改,或者在 /etc/sysctl.conf 里设置 kernel.core_pattern 实现重启后依然生效。
ulimit开启coredump时核心转储
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。