我注意到在 12.04 系统上设置ulimit -c unlimited
和发送Ctrl+\没有得到预期的结果。
尽管贝壳上印着
^\zsh: quit (core dumped)
据我所知,没有写入核心转储。
该文件/proc/sys/kernel/core_pattern
包含一个apport
管道 - 因此,它似乎默认apport
负责写入核心转储。
该目录/var/crash
不包含我的应用程序的最新核心转储。
因此我的问题是:apport 是否忽略了 SIGQUIT 引起的核心转储?
如果是:
- 这难道不应该被认为是一个错误吗?
- 我如何配置 apport 以使其不忽略 SIGQUIT?
(作为一种解决方法,设置/proc/sys/kernel/core_pattern
按core
预期工作,即core
在按下 SIGQUIT 后,我在 CWD 中获得了一个名为“核心转储”的东西。)
答案1
是的,apport 忽略了 SIGQUIT,是的,在我看来这是一个错误。
我报告了https://bugs.launchpad.net/ubuntu/+source/apport/+bug/1153662已发布补丁并修复。
答案2
Apport 会在 SIGQUIT 上过滤 coredump。您可以在 Launchpad 上找到有关该问题的讨论(SIGQUIT 信号发生时,核心转储)。有很好的理由来改变这种行为,但不清楚 Ubuntu 是否会这样做。