0

0

core dump 生成失败或文件为空的 apport / systemd-coredump 配置

舞夢輝影

舞夢輝影

发布时间:2026-01-26 19:54:25

|

767人浏览过

|

来源于php中文网

原创

coredump未生成或为空,需依次检查core_pattern配置、apport/systemd-coredump服务状态、/var/crash或/var/lib/systemd/coredump权限、ulimit -c值、ptrace_scope设置及seccomp限制。

core dump 生成失败或文件为空的 apport / systemd-coredump 配置

coredump 文件为空或根本没生成?先检查 /proc/sys/kernel/core_pattern

系统是否真正把 core dump 转交给了 apportsystemd-coredump,取决于这个内核参数。如果它被设成空、none,或指向一个不可写的路径,那必然看不到有效 core 文件。

运行 cat /proc/sys/kernel/core_pattern 查看当前值:

  • 如果是 |/usr/share/apport/apport %p %s %c %d %P,说明走 apport;确认 /usr/share/apport/apport 存在且可执行,且 apport 服务已启用(sudo systemctl status apport
  • 如果是 corecore.%p 等纯文件名,说明内核尝试直接写本地文件——此时要检查当前工作目录权限、磁盘空间、ulimit -c 是否为 0
  • 如果是 |/lib/systemd/systemd-coredump %P %u %g %s %t %c %h,说明走 systemd;但若 systemd-coredump 二进制缺失或 systemd-coredump.socket 未激活,管道会静默失败

apport 不保存 core 文件?确认 /var/crash/ 权限与 apport 配置

apport 默认不落盘原始 core,只保存压缩的 .crash 报告(含堆、环境等),除非显式开启:core_dump = 1。该配置不在主配置文件里,而在 /etc/apport/crashdb.confproblem_types 下,或更常见的是通过 /etc/apport/settings 控制。

检查并修正以下几点:

  • sudo mkdir -p /var/crash && sudo chown root:root /var/crash && sudo chmod 1777 /var/crash(注意是 1777,不是 755
  • 确保 /etc/apport/settings 中有 enabled=1,且没有 core_dump=0 这类覆盖项
  • 触发 crash 后,立刻查 sudo journalctl -u apport --since "1 minute ago",看是否有 Failed to write core dumpPermission denied

systemd-coredump 显示 “No coredumps found”?验证 socket 激活与存储路径

systemd-coredump 不是常驻进程,靠 systemd-coredump.socket 监听 /proc/sys/kernel/core_pattern 指定的管道。如果 socket 没启动,内核发来的数据就直接丢弃,无日志、无报错。

微信 WeLM
微信 WeLM

WeLM不是一个直接的对话机器人,而是一个补全用户输入信息的生成模型。

下载

必须执行:

  • sudo systemctl enable --now systemd-coredump.socket(仅启用 service 不起作用)
  • sudo mkdir -p /var/lib/systemd/coredump 并确保属主为 root:root、权限为 0755
  • coredumpctl list 查不到内容时,别急着怀疑程序,先跑 sudo coredumpctl dump -o /tmp/test.core $(pidof your_app) 看是否能手动提取——这能绕过信号捕获阶段,验证后端是否正常
  • 注意:默认 Storage=external 会把 core 存到 /var/lib/systemd/coredump/;若设成 nonejournal,则不落盘

ulimit、ptrace_scope、seccomp 共同导致 core dump 被静默拦截

即使配置全对,以下三者任一不满足,都会让进程 crash 后不产生 core:

  • ulimit -c 必须非 0(建议临时设为 unlimited 测试);注意 shell 启动子进程时继承的是当时值,不是全局策略
  • /proc/sys/kernel/yama/ptrace_scope 若为 2(默认 Ubuntu),会阻止非子进程的 core dump 捕获;测试时可临时设为 0echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
  • 使用 docker runpodman 时,容器默认启用 seccomp profile,屏蔽 sys_ptrace,导致 systemd-coredump 无法 attach;需加 --security-opt seccomp=unconfined 或自定义 profile

最易被忽略的是:某些发行版(如 Ubuntu 22.04+)在 /etc/security/limits.conf 里把 * soft core 0 写死了,即便你在终端里 ulimit -c unlimited,新启动的 GUI 应用或 systemd user session 仍受限制。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

315

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

748

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

88

2025.08.19

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

395

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

395

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

257

2023.07.24

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

31

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 4.2万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号