我的配置。
$ cat /proc/sys/kernel/core_pattern
core
$ cat /proc/sys/kernel/core_pipe_limit
0
$ cat /proc/sys/kernel/core_uses_pid
1
$ selinuxenabled && echo enabled || echo disabled
disabled
$ ps aux | grep abrt
500 2192 0.0 0.1 251036 5640 ? S 10:01 0:00 abrt-applet
500 5673 0.0 0.0 109252 884 pts/0 S+ 10:29 0:00 grep --color=auto abrt
$ ulimit -c
unlimited
我做什么。
我在 gnome 终端中使用 bash 启动程序。它没有被守护进程化或分离。然后我从另一个终端执行以下操作killall -ABRT <program_name>
。程序结束并留下消息Aborted
。在文件系统上找不到核心文件。
如何解决此问题?我还能做什么或检查什么?
答案1
找到解决方案。
问题出在 core_pattern 上,因为我的程序以某种方式将它的 cwd 更改为/
,因此无法将任何内容写入文件系统根目录。
可以在 下看到进程 cwd /proc/<pid>/cwd
。
因此,我改变了 core_pattern,echo '/tmp/core.%p' > /proc/sys/kernel/core_pattern
这有帮助。