ulimit -c unlimited设置失败与无法生成core文件

问题1:

$ ulimit -c unlimited
bash: ulimit: core file size: cannot modify limit: Operation not permitted
$ sudo ulimit -c unlimited
sudo: ulimit: command not found
  1. ulimit -c 修改次数有限,超出限制就会失败
  2. ulimit是一个shell内置的命令像cd ,不是一个独立的进程,sudo以二进制方式运行,但是没有ulimit的二进制方式,所以你运行错误。 应该在一个shell中运行

解决方法:可以打开新终端窗口运行或使用root用户运行

问题2:

设置成功,但是一测试问题又来了,为啥还是无法生成core文件

问题分析

cat /proc/sys/kernel/core_pattern

如果 内容如下:|/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g – %E

| 说明程序应该处理核心转储,不会将coredump保存到文件中,这样也就不会生成core文件了, 它可能是在别的路径下生成了

如果未以 | 开头,可能core文件生成到内容指定的路径下去了

解决方案:
指定core文件生成目录。注意:重启系统就会还原

root# echo './core.%e.%p.%t' > /proc/sys/kernel/core_pattern

意思是在当前目录下生成 core.程序名.pid.末尾的时间戳 格式名字的core文件

设置ulimit -c unlimited永久生效

切换成root用户

vim /etc/security/limits.conf

添加如图
在这里插入图片描述

sudo reboot

注意: 重启后 /proc/sys/kernel/core_pattern 文件被还原

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值