systemd-coredump

简介: systemd-coredump

systemd-coredump@.service 是一个系统服务, 它能从操作系统内核中获取内存转储,并能对获取到的数据进行各种处理。该服务的功能实际由 systemd-coredump 可执行程序实现,该程序被先后调用两次:第一次被操作系统内核作为内存转储处理器调用; 第二次被 systemd-coredump@.service 服务调用, 用于将获取到的数据写入文件或日志中。

当操作系统内核调用 systemd-coredump 来处理内存转储时, 它将以特权模式运行,并连接到 systemd-coredump.socket 单元创建的套接字上,接着再派生一个非特权模式的 systemd-coredump@.service 实例来处理所获取的内存转储。可见, systemd-coredump.socket 与 systemd-coredump@.service 是为了实现对内存转储进行统一管理而 专门设置的辅助单元。

内存转储既可以保存到日志中,也可以保存到单独的文件中, 以便于将来被例如 gdb(1) 这样的工具做进一步的分析和处理。

默认情况下,systemd-coredump 会把内存转储事件以及可能存在的回溯(backtrace)保存到日志中, 同时把内存转储自身的数据(内存镜像)保存到外部的 /var/lib/systemd/coredump/ 目录中。

进程在接收到信号后的行为 取决于某些特定的因素, 特别需要注意的是,仅在相关系统资源充足且未超出资源限制的前提下,才会进行内存转储操作。

如果在调用 systemd-coredump 时使用了 --backtrace 选项,那么在 systemd-coredump 的标准输入(STDIN)上必须存在一条符合 Journal Export Format 格式的日志,这条日志必须包含一个 MESSAGE= 字段, 并且任何其他元数据字段在调用者看来都必须是合情合理的。 systemd-coredump 将会按照它自己从内核中接收内存转储的方式,在这条日志中添加额外的元数据字段。 注意,在这种模式下,内存转储将不会保存在日志中。


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
NoSQL 安全 Linux
Linux 中 core dump 文件的作用和使用方法
Linux 中 core dump 文件的作用和使用方法
3179 1
|
程序员 Linux Docker
使用Docker本地安装部署Draw.io绘图工具并实现远程访问协作办公
使用Docker本地安装部署Draw.io绘图工具并实现远程访问协作办公
1081 0
libfreetype.so.6: cannot open shared object file: No such file or directory
libfreetype.so.6: cannot open shared object file: No such file or directory
1469 0
|
人工智能 自然语言处理 数据挖掘
博物馆导览系统核心功能与设计思路,提升游客体验和运营效率
博物馆导览系统通过AR、VR、大数据等技术,实现展品智能讲解、AR互动、可视化数据看板等核心功能,助力博物馆智慧化升级,提升游客体验和运营效率
1272 2
|
存储 NoSQL Linux
《探索 Linux 命令:systemd-coredumpctl》
**《systemd-coredumpctl概览》** `systemd-coredumpctl`, Linux中管理&分析core dump的利器。集中管控systemd生成的转储,详述crash细节。用`--list`查看所有转储,`--info <ID>`深入单一转储。需注意权限、存储管理,配gdb深化分析。精通此命令,加速问题诊断。#LinuxTips #CoreDumpAnalysis
|
Web App开发 人工智能 JSON
Windows版来啦!Qwen3+MCPs,用AI自动发布小红书图文/视频笔记!
上一篇用 Qwen3+MCPs实现AI自动发小红书的最佳实践 有超多小伙伴关注,同时也排队在蹲Windows版本的教程。
2328 1
|
监控 Shell Linux
清理旧的 core dump 文件
【10月更文挑战第1天】
1523 2
|
存储 安全 Linux
调整 core dump 的存储位置或限制
【10月更文挑战第1天】
1807 2
|
关系型数据库 数据库 PostgreSQL
深入理解 PostgreSQL 的 JOIN 连接
深入理解 PostgreSQL 的 JOIN 连接
902 4