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

Phi*_*ßen 9 core-dump systemd

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

Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

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

(背景:我的原始问题可以在这里找到。感谢 schaiba 找到解决方案。我提供了这个问答,所以如果其他人已经知道这是一个系统问题,他们可以更容易地找到解决方案。)

Phi*_*ßen 10

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

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

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

coredumpctl dump 10666 --output /tmp/core.10666
Run Code Online (Sandbox Code Playgroud)

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

# ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)

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


von*_*and 8

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

systemdsystemd-sysctl.service只是运行sysctl在启动的合适时间点,并重新运行把手上的变化。