运行一个相当标准的 Fedora 25 系统,我希望 ABRT 收集所有段错误进程的核心文件。但事实似乎并非如此。
ABRT 已启用:
cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I
自测试可以完成简单的用户段错误工作:
sleep 100 &
kill -11 $!
[1] + segmentation fault (core dumped) sleep 100
/var/spool/abrt
并生成一个包含其下 core 文件的目录(即ccpp-YYYY-MM-DD...
)。
还有日志记录:
Jan 01 21:38:12 example.org audit[17183]: ANOM_ABEND auid=1000 uid=0 gid=0 ses=3 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=17183 comm="sleep" exe="/usr/bin/sleep" sig=11
Jan 01 21:38:12 example.org abrt-hook-ccpp[17186]: Process 17183 (sleep) of user 0 killed by SIGSEGV - dumping core
但是,当 opensshd 进程出现段错误时,abrt 挂钩不会被调用,因此不存在核心文件。
opensshd 核心的日志条目:
Jan 01 21:41:46 example.org audit[18256]: ANOM_ABEND auid=4294967295 uid=0 gid=0 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 pid=18256 comm="sshd" exe="/usr/sbin/sshd" sig=11
Jan 01 21:41:46 example.org kernel: traps: sshd[18256] general protection ip:7f4d8d16ffd1 sp:7ffd42d93ef0 error:0 in libc-2.24.so[7f4d8d0ef000+1bd000]
这是 ABRT 错误还是功能?
这意味着默认情况下系统守护进程的核心文件集合是禁用的吗?
我该如何启用它?