Vamos a forzar la creación de coredump sobre un directorio en concreto y útil para un volcado de memoria del proceso en el momento del fallo.
echo "kernel.core_pattern = /var/lib/coredumps/core.%e.%p.%t" > /etc/sysctl.d/02-core.conf
echo "kernel.core_uses_pid = 1" >> /etc/sysctl.d/02-core.conf
echo "fs.suid_dumpable = 1" >> /etc/sysctl.d/02-core.conf
sysctl --system
cat /proc/sys/kernel/core_pattern
sysctl -a | grep kernel.core_pattern
mkdir -p /var/lib/coredumps
chmod 770 /var/lib/coredumps
ulimit -c unlimited
systemctl mask systemd-coredump
gcore
bash -c 'kill -s SIGSEGV $$'
ls -lh /var/lib/coredumps/
Porqué hacemos un mask de systemd-coredump? systemd-coredump intercepta los core dumps y los gestiona internamente, ignorando la ruta definida en kernel.core_pattern. Al hacer mask, el sistema respeta la configuración personalizada y guarda los dumps en la ruta que se define (por ejemplo, /var/lib/coredumps).
Si hay que revertir la situación, se debe aplicar unmask al servicio systemd-coredump