Проверим создаются ли файлы core dump вообще (некоторые программы, например httpd, могут требовать индивидуальных настроек). Для этого создадим программу на С++ с ошибкой деления на ноль, что соответственно:) приводит к ошибке и в нашем случае создание файла core dump
int a (int *p) { int y = *p; return y; } int main (void) { int *p = 0; /* null pointer */ return a (p); }
Компилируем
$ gcc -o test test.c
Запускаем
$ ./test Segmentation fault (core dumped) $ file /tmp/core-test-11-0-0-22601-1414579274 /tmp/core-test-11-0-0-22601-1414579274: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './test'
Настройка производилась для CentOS теперь CentOS Stream 6.5 (Final) x86_64 с ядром Установка и использование OpenVZ в 2023 2.6.32-042stab093.5.
kernel.core_pattern = /tmp/core-%e-%s-%u-%g-%p-%t fs.suid_dumpable = 2 kernel.core_uses_pid = 1
%e is the file name %g is GID processes running under %p is the process PID %s is a signal caused the dump % is a time of occurrence %u is a UID process runs
применим эти параметры без перезагрузки компьютера
# sysctl -p
# nano /etc/security/limits.conf # Disable core file #* soft core 0 # Enable core file * soft core unlimited
Что бы не перегружать компьютер для применения файла limits.conf, можно применить их из командной строки:
# ulimit -c unlimited
cat /proc/`pgrep process_name`/limits
corelimit="ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0}"
дополнительно определяем
# nano /etc/sysconfig/init DAEMON_COREFILE_LIMIT=unlimited