Создание дампов ядра в Linux
Вопрос
Дублировать:
Я пытаюсь создать дамп ядра в моем "Fedora Core release 3 (Heidelberg)".
[root@testserver_core_dump теста]# отменить -a
Тестовый сервер Linux 2.6.12-1.1381_FC3 #1 Пятница, 21 октября, 03:46:55 EDT 2005 i686 athlon i386 GNU/Linux
Я слежу за это для создания дампов ядра.
Проблема в том, что /proc/sys/kernel/suid_dumpable отсутствует в этой версии.Я также проверил здесь /proc/sys /fs/suid_dumpable , но suid_dumpable отсутствует.
1) Есть ли какие-либо обходные пути для этого?2) Я что-то здесь упускаю?
Решение
Инструкции, которым вы следуете, просто превышают ограничения o / s, которые могут помешать вам получить дамп ядра.
Генерация дампа ядра - это тривиальный процесс, вы посылаете сигнал процессу следующим образом
kill -ABRT pid_of_process
Однако есть много вещей, которые могут помешать этому произойти, однако вы должны сначала попробовать это и посмотреть, создает ли это дамп ядра в вашем текущем каталоге.Если программа интерактивна и не перехватывает сигнал завершения, то вы можете вызвать дамп ядра, отправив процессу SIGQUIT, обычно это привязывается к CTRL-\
Область, с которой у вас возникли проблемы в указанном документе, относится к процессу, который запускает setuid / setguid если ваш процесс не запущен ни в одном из этих режимов, вы можете безопасно игнорировать этот шаг.(Вы можете определить, запущен ли процесс с setuid / setguid, посмотрев на права доступа к файлам программы и изучив биты setuid и setguid. это можно сделать, выполнив команду ls -l и выполнив поиск s в 4-й позиции (setuid) или 7-й позиции (setgid) (пример setuid ниже).)
-r-sr-xr-x 1 root wheel 57616 28 Oct 03:28 /usr/bin/login
Пытались ли вы сгенерировать ядро без использования шага, который не работает, и сработало ли это?
Вам нужно будет иметь возможность записывать данные в каталог, в котором выполняется процесс, или в каталог, определенный для дампов ядра, если это не текущий каталог.Запуск от имени пользователя root может решить проблемы с разрешениями.
Другие советы
Я не уверен, что понимаю, чего вы хотите.Веб-страница, на которую вы ссылаетесь, рассказывает о ВКЛЮЧЕНИИ дампов ядра, а не о их запуске.Не беспокойтесь об отсутствующем sysctl - в моих системах Linux его также нет, и я могу с радостью сбрасывать ядра повсюду :) Вы хотите создать дамп ядра для определенного процесса?
Помимо SIGABRT, вы также можете попробовать использовать gcore
:
Имя gcore - Сгенерировать основной файл для запущенного процесса
КРАТКИЙ ОБЗОР gcore [-o имя файла] pid
Описание gcore генерирует основной файл для процесса, указанного его идентификатором процесса, pid.По умолчанию основной файл записывается в core.pid в текущем каталоге.
Это дубликат этот вопрос.В принятый ответ, и в тот , кто набрал наибольшее количество голосов предложите следующее:
В Bash:
ulimit -c unlimited
и в tcsh:
limit coredumpsize unlimited
В этом случае, если произойдет сбой программы, дамп ядра будет создан в файле под названием core
где была запущена программа.