一些谷歌search后,我经历了几篇文章,但似乎没有工作。
我正在使用Centos 7。
让我解释我到目前为止做了什么。
我一步一步跟着
http://www.kibinlabs.com/re-enabling-core-dumps-redhat-7/
之后,我可以得到coredump生成,但只有当我手动启动的过程,但是,当我开始像
systemctl start <myprocess>
用SEGV杀死后不会产生coredump
kill -11 <pid>
var / log / messages显示它获得了SEGV信号,但是我不能看到coredump。
内核的核心模式也被设置。
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
我相信你可能试图杀死SUID位设置的守护进程。
在这种情况下,您将需要使用fs.suid_dumpable = 2
另一件事情是确保在保存核心转储的整个path上的权限具有适当的权限。
在你的情况下,这意味着用户需要能够在/var/lib
上执行/var
,并能够在/var/lib/coredumps
写入。
这里的用户实际上是拥有被杀死进程的用户,而不是用户杀死进程。