使用 systemd 启用 coredump centos 7

使用 systemd 启用 coredump centos 7

我在谷歌上搜索后读了几篇文章,但似乎没有什么作用。

我正在使用 Centos 7。

让我解释一下我到目前为止所做的事情。

我一步步遵循

http://www.kibinlabs.com/re-enabling-core-dumps-redhat-7/

之后,我可以得到生成的核心转储,但只有当我手动启动该过程时,无论何时我启动该过程

systemctl start <myprocess>

使用 SEGV 终止后不会生成核心转储

kill -11 <pid>

var/log/messages 显示它收到了信号 SEGV,但我看不到核心转储。

内核核心模式也设置好了。

cat /proc/sys/kernel/core_pattern
/var/lib/coredumps/core-%e-sig%s-user%u-group%g-pid%p-time%t


coredump.conf 

cat /etc/sysctl.d/50-coredump.conf
Storage=both

cat  /etc/sysctl.d/99-sysctl.conf
fs.suid_dumpable = 1
kernel.core_uses_pid = 1

    Storage=both
    [root@server01 coredumps]# ls -l /etc/sysctl.d/50-coredump.conf
    lrwxrwxrwx 1 root root 26 Aug  6 13:51 /etc/sysctl.d/50-coredump.conf -> /etc/systemd/coredump.conf

答案1

我相信您可能正在尝试杀死设置了 SUID 位的守护进程。

在这种情况下,你需要使用fs.suid_dumpable = 2

要确保的另一件事是保存核心转储的整个路径的权限具有适当的权限。

在您的情况下,这意味着用户需要能够在/var上执行/var/lib并且能够写入/var/lib/coredumps

这里的用户实际上是拥有被终止进程的用户,而不是终止进程的用户。

相关内容