问题
When I am running code on a container it cores I am not able to locate it on my container(or the core file is not being stored).
ulimit -cis set tounlimited/proc/sys/kernel/core_patternis set to|/usr/share/apport/apport %p %s %c %P(what is the meaning of|?)
Do I need to make any changes in/to the host system?
回答1:
| indicates that a program should handle the core dump. Rather than saving the coredump to a file it will be piped into that programs input. Means if core_pattern is set to |... apport apport will handle the core dumps.
Unfortunately apport will create coredumps only for installed packages. I would set the pattern to a file name, like this:
echo '/tmp/cores/core.%e.%p.%t' > /proc/sys/kernel/core_pattern
The would give you coredumps like /tmp/core.program.pid.012345678 where program is the program name, pid the program's pid plus a timestamp at the end.
Check man core for more information (espcecially information about meta chars that can be used in the core pattern.
来源:https://stackoverflow.com/questions/29172874/where-are-core-files-stored-in-a-lxc-container