我在 Debian Stretch 服务器上安装了systemd-coredump
该功能,以便在程序崩溃时保存核心转储。这基本上可以正常工作。每当某事崩溃时,转储都会列出coredumpctl list
,我可以使用 获取有关它的信息coredumpctl info
。
然而,重启后coredumpctl list
始终是空的,尽管文件/var/lib/systemd/coredump/
仍然存在。
有什么方法可以coredumpctl
再次显示信息吗?还有其他工具可以检查文件吗/var/lib/systemd/coredump/
?
感谢您的帮助!
答案1
这些信息并不是每次都直接从 coredump 中提取的;它是在接收转储时提取的,然后存储在 systemd-journal 中。你在coredumpctl仅仅是重新格式化的日志消息。
这意味着系统日志消息也必须存储在 /var 中。创建一个/var/log/journal
目录,然后确保 journald.conf 允许持久存储(如果“自动”模式不起作用,有时需要明确指定)。
您仍然可以按原样使用 coredump 文件数据库和其他工具——最终,它们只是内核会生成的 lz4 压缩的标准核心转储。(systemd-coredumpctl 仅仅接收和组织它们——而不是创建它们。)
例如,要生成回溯,您可以使用 gdb 的bt
子命令。