Linux上的核心转储生成

时间:2014-02-03 22:03:06

标签: linux core rhel6

就我的盒子而言,正在发生一些令人困惑的事情。

以下是/etc/sysctl.conf中的设置:

kernel.core_pattern = core
kernel.core_uses_pid = 1

/etc/profile中,我有这个:

 ulimit -S -c unlimited >/dev/null 2>1

我通过查看来验证一切:

cat /proc/sys/kernel/core_pattern
cat /proc/sys/kernel/core_uses_pid

因此,当我们执行ulimit -c时,它会返回unlimited的值。

当我们执行ulimit -S -c时,它会返回值unlimited

当我们执行ulimit -H -c时,它会返回值unlimited

当我对正在运行的进程运行kill -6时,我没有得到核心。

当我运行ulimit -c unlimited并再次启动进程并运行kill -6时,它会生成一个核心。

有人可以解释软限制和硬限制之间的区别吗?

我们应该改变硬限制吗?

我不喜欢这种情况,因为核心有时会产生,有时候不会产生。

即使我更改了limits.conf,我也非常想了解我在做什么。

我需要披露的更多内容是我在RHEL 6环境(x86_64)上运行。

并且有足够的磁盘空间,它不是DAEMON进程或setuid程序。并且文件夹中有足够的权限来创建新文件,并且运行时目录中没有名为core的文件/文件夹。

我已经提出了具体的问题,我希望在这些问题结束之前回答这些问题。这不是主题,因为核心转储对于调试代码问题至关重要。

0 个答案:

没有答案