ubuntu-12.04coredumpxinetd

How to get a core dump from a service started by xinetd on Ubuntu Precise


I want to debug a service which fails with SIGPIPE. So I installed a signal handler for SIGPIPE and called abort() in it to get a core dump.

But I get none. I've set sysctl -w kernel.core_pattern=/tmp/core to get the core dump into tmp and I set with both /etc/security/limits.conf and ulimit -c unlimited

So, how can I get a core dump?

My xinetd-service files look as following:

service netmaumau
{
    socket_type = stream
    protocol    = tcp
    port        = 8899
    type        = UNLISTED
    flags       = KEEPALIVE
    disable     = no
    wait        = yes
    user        = heiko
    instances   = 1
    cps         = 1 10
    server      = /long/path/to/nmm-server
    server_args = -a
    log_on_success = PID HOST EXIT
    log_on_failure = HOST
}

Solution

  • adding

    struct rlimit rl = { RLIM_INFINITY, RLIM_INFINITY }; 
    setrlimit(RLIMIT_CORE, &rl);
    

    solved the problem