当我在容器上运行代码时,它核心我无法在我的容器上找到它(或者核心文件没有被存储)。
ulimit -c
设置为unlimited
/proc/sys/kernel/core_pattern
设置为
|/usr/share/apport/apport %p %s %c %P
(|
是什么意思?)我是否需要对主机系统进行任何更改?
答案 0 :(得分:10)
|
表示程序应该处理核心转储。不是将coredump保存到文件中,而是将其传输到该程序输入中。表示如果core_pattern
设置为|... apport
apport
将处理核心转储。
不幸的是apport
只会为installed
个包创建coredump。我会将模式设置为文件名,如下所示:
echo '/tmp/cores/core.%e.%p.%t' > /proc/sys/kernel/core_pattern
这会给你像/tmp/core.program.pid.012345678
这样的coredump,其中program
是程序名称,pid
程序的pid加上最后的时间戳。
检查man core
以获取更多信息(特别是关于可以在核心模式中使用的元字符的信息。