linux - 当我使用 [Cntrl + \] 退出正在运行的命令时,我在哪里可以找到 Linux 中的核心转储文件?
问题描述
Cntrl + \
当我用它退出运行命令时\Quit (core dumped)
,它可能会创建一个包含程序内存映像的核心文件。但是我在哪里可以找到那个文件?
解决方案
当一个进程转储核心时/proc/sys/kernel/core_pattern
,从这个 stackoverflow question执行配置的进程。
如果你的 init 进程是 systemd,你应该找到这样的/proc/sys/kernel/core_pattern
文件内容:
|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e
从systemd-coredump我们可以读到:
默认情况下,systemd-coredump 将在可能的情况下将包含回溯的核心转储记录到日志中,并将核心转储本身存储在 /var/lib/systemd/coredump 中的外部文件中。
/var/lib/systemd/coredump
默认情况下,核心转储应该可以在您的系统日志和目录中访问。
在我的系统上发送SIGQUIT
信号后的 coredump 示例:sleep infinity
$ journalctl COREDUMP_SIGNAL_NAME=SIGQUIT
-- Logs begin at Sun 2019-05-19 10:51:52 CEST, end at Sun 2019-09-01 18:14:43 CEST. --
wrz 01 18:03:32 chors systemd-coredump[24169]: Process 24167 (sleep) of user 1000 dumped core.
Stack trace of thread 24167:
#0 0x00007fd96c53c338 __nanosleep (libc.so.6)
#1 0x000055fb279394a5 n/a (sleep)
#2 0x000055fb279392a1 n/a (sleep)
#3 0x000055fb27936221 n/a (sleep)
#4 0x00007fd96c499ee3 __libc_start_main (libc.so.6)
#5 0x000055fb279362fe n/a (sleep)
对 journalctl 使用不同的输出选项时,可以获得更多输出。
推荐阅读
- amazon-web-services - 是否建议在同一个 AWS 区域部署多个相同的应用程序?
- mysql - 从所有 id 列表中选择所有最后日期
- python - 仅在一列中添加具有附加值的新行
- python - python如何查看文件对象.obj中的数据
- javascript - 单击图标时无法显示输入
- view - 哪个用户在 Snowflake 上创建了视图
- swift - 无法在表格视图内的集合视图中设置单元格大小
- mysql - 比较两个查询结果并检查它们是否都存在值
- android - 配置根项目“imagepicker”时出现问题:未找到 SDK
- google-analytics - Google Analytics Web+App 事件配置:错误“未定义 gtag”