Допустим, (очень) большой процесс вызывает сбой и выгрузку ядра, и мы знаем причину из другой информации (возможно, сообщения об утверждении, может быть, что-то еще).
Есть ли способ остановить генерацию дампа ядра, так как в этом случае это пустая трата?
Например, уничтожит ли -9 процесса дампа ядра прерывание генерации файла ядра?
Очевидно, что если бы мы заранее знали, что нам не нужны дампы ядра, мы могли бы соответствующим образом установить ulimit или использовать различные утилиты управления файлами ядра ОС.
Но этот вопрос о стадии "дамп ядра уже в процессе" ...
(Например, представьте, что я запросчик в /programming/18368242/how-to-bypass-a-2tb-core-dump-file-system-limit и не хочу тратить 5 -6 ТБ дискового пространства :))
Ответы:
Как правило: нет, нет способа надежно убить coredump.
При этом существует возможность (по крайней мере, в Linux) для коммерческого * NIX, вероятно, никак
Возможность заключается в том, что ядро серии 3.x способно прервать запись файла. Одна из возможностей - найти поток, который выполняет дамп, и многократно отправлять SIGKILL, пока он не преуспеет.
Эта серия исправлений устраняет проблему до некоторого уровня.
Другая возможность - использовать альтернативный синтаксис для coredump_pattern. В руководстве сказано, что начиная с версии 2.6.19 вместо шаблона вы можете использовать трубу и программу (с параметрами), которая будет обрабатывать дамп. Следовательно, вы будете иметь контроль над тем, куда будет записан дамп (/ dev / null - очевидный кандидат на ваши бесполезные ядра).
Этот патч также заслуживает небольшого внимания: http://linux.derkeiler.com/Mailing-Lists/Kernel/2010-06/msg00918.html
источник
проверьте эту ссылку, это может быть полезно
https://publib.boulder.ibm.com/httpserv/ihsdiag/coredumps.html
источник
Похоже, вы можете запустить ulimit -c (если вы используете bash), чтобы ограничить размер дампа ядра.
Смотрите: /ubuntu/220905/how-to-remove-limit-on-core-dump-file-size
и
http://ss64.com/bash/ulimit.html
источник