迁移到 systemd 后不再有核心转储

迁移到 systemd 后不再有核心转储

生成 coredump 过去工作正常,但切换到 systemd 后,我只看到该消息

Aborted (core dumped)

但没有core生成文件。和systemd有关系吗?

(背景:我原来的问题可以找到这里。感谢 shaiba 找到了解决方案。我提供此问答,以便其他人如果已经知道这是一个 systemd 问题,可以更轻松地找到解决方案。)

答案1

默认情况下,systemd 将核心转储写入日志。coredumpctl list列出丢失的核心转储。

文件存储在/var/lib/systemd/coredump.用于coredumpctl dump访问核心文件。

例如,如果 PID 为 10666,则可以使用

coredumpctl dump 10666 --output /tmp/core.10666

与 systemd 无关,但如果仍然无法正常工作,请确保关闭 coredump 限制:

# ulimit -c unlimited

还要验证您是否可以写入工作目录。

答案2

内核/proc/sys/设置由 管理sysctl(8),系统默认设置/usr/lib/sysctl.d//etc/sysctl.conf或覆盖/etc/sysctl.d/。它们定义文件的名称core等。不是他们写的(除非内核配置为允许从 SUID 二进制文件进行核心转储)。书写受 控制ulimit(1),即ulimit -c unlimited没有限制。在 core下systemd(1)由其控制下的东西生成的文件被写入日志,可以通过coredumpctl(1).普通用户的东西没有改变。

systemd只是在正确的启动点systemd-sysctl.service运行,并处理更改后的重新运行。sysctl

相关内容