Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
systemd: Failed with result 'core-dump' Linux / DevOps

Failed with result core-dump — Расшифровка дампов памяти в systemd

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Сообщение «systemd: Failed with result 'core-dump'» генерируется менеджером systemd. Ошибка означает, что процесс сервиса завершился по одному из критических фатальных сигналов ядра Linux (SIGSEGV — ошибка адресации памяти, SIGABRT — аварийный аборт процесса функцией abort() или assert(), SIGFPE — деление на ноль, SIGILL — нелегальная инструкция процессора). При падении ядро сформировало полный снимок адресного пространства процесса и сохранило его на диск.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
Fatal SignalsSIGSEGV / SIGABRT / SIGILLСигналы операционной системы, приводящие к генерации аварийного дампа.
systemd-coredumpCore Dump HandlerСлужба перехвата дампов ядра через интерфейс /proc/sys/kernel/core_pattern.
Storage/var/lib/systemd/coredumpКаталог долговременного хранения сжатых дампов (формат zstd/lz4).

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Проверка и анализ последнего сгенерированного дампа

# Просмотр метаданных последнего сбоя:
sudo coredumpctl info

# Пример важной информации из вывода:
# Signal: 6 (ABRT)
# Coredump: /var/lib/systemd/coredump/core.service_name.1000...zst

Сценарий 2: Быстрое извлечение Backtrace без установки тяжелого GDB

Утилита coredumpctl умеет автоматически выводить стек вызовов:

# Печать стектрейса функций последнего упавшего процесса:
sudo coredumpctl info | grep -A 20 "Stack trace of thread"

Сценарий 3: Проверка несовместимости инструкций CPU (SIGILL / Illegal Instruction)

Если приложение скомпилировано под новые наборы инструкций (AVX-512, AVX2, SSE4.2), а CPU хоста их не поддерживает:

# Проверка поддерживаемых флагов текущего CPU:
cat /proc/cpuinfo | grep -m 1 -E "(avx|avx2|avx512|sse4_2)"

# Если флагов нет, обновите модель CPU в гипервизоре (KVM cpu mode='host-passthrough')!

Сценарий 4: Настройка размера хранилища дампов в coredump.conf

Предотвратите переполнение системного диска дампами памяти:

# Отредактируйте /etc/systemd/coredump.conf:
[Coredump]
Storage=external
Compress=yes
MaxUse=2G
KeepFree=5G

# Примените настройки:
sudo systemctl restart systemd-coredump
Собственное серверное ПО регулярно падает с генерацией core-dump?
ITSTM выполнит профилирование аварийных дампов памяти, поиск утечек в коде C++/Rust/Go и настройку автоматической отправки баг-репортов в Sentry.
Практический опыт инженера: При виртуализации серверов на Proxmox/KVM падения с ошибкой Result: core-dump (SIGILL) часто вызваны дефолтной моделью CPU QEMU Virtual CPU (kvm64). Всегда выставляйте CPU Type = 'Host' для поддержки всех инструкций современного процессора.

Частые вопросы (FAQ)

Почему функция abort() вызывает сигнал SIGABRT (Signal 6)?

Разработчики вызывают функцию abort() или стандартные макросы assert(), когда программа сталкивается с заведомо некорректным логическим состоянием (например, нарушение инварианта структуры данных), чтобы немедленно сохранить дамп памяти для анализа.

Как полностью отключить генерацию core-dump файлов в системе?

В файле /etc/systemd/coredump.conf установите Storage=none и выполните: sudo systemctl restart systemd-coredump. Либо задайте limit ulimit -c 0.

Как открыть дамп памяти в IDE CLion / VS Code?

Выгрузите бинарный файл и дамп памяти командой: coredumpctl dump <PID> --output /tmp/core.dump. Откройте файл /tmp/core.dump в отладчике вашей IDE с указанием бинарного файла приложения.

Почему дамп памяти не генерируется при падении некоторых служб?

Если в unit-файле службы задана директива LimitCORE=0 или процесс менял UID через setuid без флага PR_SET_DUMPABLE, ядро блокирует создание дампа из соображений безопасности.