Назад | Перейти на главную страницу

Как отключить дампы ядра в Debian 8

Я делаю вид, что уже все перепробовал, но мой Debian 8 продолжает создавать дампы ядра, когда что-то выходит из строя. Это происходит примерно один или два раза в месяц. Это рабочий сервер для нескольких веб-сайтов с упакованными Apache 2.4, php5-fpm и mysql. Я подозреваю, что это сбой php5-fpm, потому что я получаю файл дампа в папке DocumentRoot. Файл, который я получаю, называется «core», и его размер составляет порядка гигабайт.

Вот что я уже сделал, чтобы безуспешно отключить дампы ядра:

ln -s /dev/null /etc/systemd/coredump.conf

а затем перезагрузился. Никаких кубиков.

echo '*               hard    core    0' >> /etc/security/limits.conf
echo "fs.suid_dumpable = 0" >> /etc/sysctl.conf
sysctl -p

а затем перезагрузился. По-прежнему нет кубиков. Я НЕ устанавливал kernel.suid_dumpable в 0, потому что нашел его позже, но когда я нашел его, я также прочитал, что по умолчанию используется ноль. Эти настройки в любом случае не должны иметь никакого значения, потому что php5-fpm не установлен. То же самое касается Apache и mysql, на случай, если это не сбой php5-fpm.

Пока есть скрипт, который ищет дампы ядра и удаляет их. Crontab сделает все остальное, но это не лучшее решение.

Как мне глобально и безоговорочно отключить дампы ядра в Debian 8?

После комментария Майкла Хэмптона к ответу Froggiz я заметил, что в Debian отсутствует справочная страница coredump.conf, поэтому я поискал ее в Интернете и нашел. Эта страница руководства содержит много полезной информации, и мне интересно, почему Debian поставляется без нее (может быть, Debian поставляется без всей вещи systemd-coredump?).

Однако из этой справочной страницы и справочной страницы systemd-coredump кажется, что основные файлы, которые я получаю, не поступают из systemd, потому что systemd помещает их в / var / lib / systemd / coredump или в журнал в зависимости от параметра Storage, но никогда в рабочий каталог потерпевшего крах процесса. Более того, справочная страница systemd-coredump (также отсутствующая в Debian) говорит, что для работы функции дампа ядра вам необходимо настроить параметр sysctl kernel.core_pattern, чтобы ядро ​​фактически передавало дамп ядра в systemd-coredump.

Затем я посмотрел на значение Debian для kernel.core_pattern: Debian поставляется с этим параметром, установленным по умолчанию на «core», что совпадает с именем получаемых мной файлов дампа ядра.

Теперь я полагаю, что настройка

kernel.core_pattern=|/bin/true

(или / bin / false в этом отношении) в sysctl.conf в соответствии с справочной страницей core (5) решит проблему.

Я собираюсь принять свой ответ через несколько недель, если замечу, что сервер перестает создавать файлы ядра. Мне очень жаль, что я не могу принять комментарий Майкла в качестве ответа, но большое ему спасибо за то, что он указал мне в правильном направлении.

РЕДАКТИРОВАТЬ: я нашел Вот способ проверить конфигурацию, не дожидаясь спонтанного сбоя, и я подтверждаю, что это правильный ответ.

Вы можете попробовать это: https://wiki.archlinux.org/index.php/Systemd#Dispting_application_crash_dumps_journaling

Отключение ведения журнала аварийных дампов приложений Редактировать файл /etc/systemd/coredump.conf добавив эту строку: Storage=none

и запустите: systemctl daemon-reload чтобы перезагрузить конфигурацию.