Search code examples
linuxvirtual-machinelxc

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?


Solution

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