当我在它核心的容器上运行代码时,我无法在我的容器上找到它(或者核心文件没有被存储)。
ulimit -c
设置为unlimited
/proc/sys/kernel/core_pattern
设置为|/usr/share/apport/appport %p %s %c %P
(|
是什么意思?)
我是否需要对主机系统进行任何更改?
最佳答案
|
表示程序应该处理核心转储。它不会将核心转储保存到文件中,而是通过管道传输到该程序的输入中。意味着如果 core_pattern
设置为 |... apport
apport
将处理核心转储。
不幸的是,apport
只会为已安装
包创建核心转储。我会将模式设置为文件名,如下所示:
echo '/tmp/cores/core.%e.%p.%t' > /proc/sys/kernel/core_pattern
这会给你像 /tmp/core.program.pid.012345678
这样的核心转储,其中 program
是程序名称,pid
是程序的pid 加上最后的时间戳。
查看 man core
以获取更多信息(尤其是有关可在核心模式中使用的元字符的信息。
关于linux - lxc 容器中存储的核心文件在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172874/