Получение core dump в Linux
Проверка создания core dump
Проверим создаются ли файлы core dump вообще (некоторые программы, например httpd, могут требовать индивидуальных настроек). Для этого создадим программу на С++ с ошибкой деления на ноль, что соответственно:) приводит к ошибке и в нашем случае создание файла core dump
- test.c
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'
Как включить core dump?
Настройка производилась для CentOS теперь CentOS Stream 6.5 (Final) x86_64 с ядром Установка и использование OpenVZ в 2023 2.6.32-042stab093.5.
- Добавим в /etc/sysctl.conf
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
- Отредактировать лимит для размера core файла (по умолчанию 0, то есть отключены, файл создаваться не будет). Редактируем файл с лимитами и указываем максимальный размер core файла, в нашем случае неограниченный размер(unlimited).
# 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
- Описанного набора действий бывает не всегда достаточно. В частности, если SysV скрипт использует функцию daemon(), описанную в /etc/rc.d/init.d/functions, то заданный ранее явно лимит переопределяется следующей строкой
corelimit="ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0}"
дополнительно определяем
# nano /etc/sysconfig/init DAEMON_COREFILE_LIMIT=unlimited
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах