Вопрос

Дублировать:

создайте дамп ядра в 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 где была запущена программа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top