Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where are core files stored in a lxc container?

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).

  1. ulimit -c is set to unlimited
  2. /proc/sys/kernel/core_pattern is 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?

like image 906
ajax_velu Avatar asked Dec 24 '22 21:12

ajax_velu


1 Answers

| 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.

like image 135
hek2mgl Avatar answered Jan 05 '23 16:01

hek2mgl