SLES 10 ulimit показывает дампы ядра без ограничений, но дампов не происходит
Ограничения дампа ядра отключены для пользователя с помощью обычного механизма /etc/security/limits.conf:
# ulimit -a
core file size (blocks, -c) unlimited
Однако выполнение теста segfault показывает, что ядро не сбрасывается:
/tmp/a.out
Segmentation fault
Нет сообщения об удалении ядра. Хмм. /etc/security/limits.conf выглядит следующим образом:
username - core unlimited
Кто-нибудь сталкивался с этим раньше? Это ошибка в SLES? Благодарю.
1 ответ
Решение
Дампы ядра были включены, но core_pattern, используемый для имен файлов, указывал на несуществующий каталог.
Это заставляет дамп ядра молча терпеть неудачу.
# cat /proc/sys/kernel/core_pattern
/cores/core.%p
# ls -la /cores
/bin/ls: /cores: No such file or directory
Исправление простое: создайте указанный каталог или измените sysctl.conf соответственно:
# mkdir /cores
# /tmp/a.out
Segmentation fault (core dumped)