【发布时间】:2021-11-13 19:45:47
【问题描述】:
我有一个包含许多可执行文件的产品,在其旧版本(RHEL 5 和更早版本)中,发生崩溃时的默认行为是将核心文件存放在可执行文件的当前工作目录中,名称为 core。 PID。在 RHEL 7 和 8 中,新行为是所有核心文件都转到 /var/lib/systemd/coredump/。为了避免修改大约十几个期望旧行为的看门狗程序,我宁愿只恢复到旧的核心位置(在进程的 cwd 中)。我该如何改变这种行为?
【问题讨论】:
我有一个包含许多可执行文件的产品,在其旧版本(RHEL 5 和更早版本)中,发生崩溃时的默认行为是将核心文件存放在可执行文件的当前工作目录中,名称为 core。 PID。在 RHEL 7 和 8 中,新行为是所有核心文件都转到 /var/lib/systemd/coredump/。为了避免修改大约十几个期望旧行为的看门狗程序,我宁愿只恢复到旧的核心位置(在进程的 cwd 中)。我该如何改变这种行为?
【问题讨论】:
看起来我找到了自己的答案。我将此行添加到 /etc/sysctl.d/99-sysctl.conf:
kernel.core_pattern = core.%p
这就是所有必要的。这在重启后生效,但您也可以通过运行使其立即生效
echo "core.%p" > /proc/sys/kernel/core_pattern
请注意,我的服务器没有运行 abrtd,这可能会影响此解决方案是否有效。
【讨论】: