Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

25.2. 安装 ABRT 并启动其服务

要使用 ABRT,请确保您的系统上安装 了 abrt-desktopabrt-cli 软件包。abrt-desktop 软件包为 ABRT 提供图形用户界面,而 abrt-cli 软件包则包含用于在命令行中使用 ABRT 的工具。您还可以同时安装.ABRT GUI 和命令行工具的一般工作流在过程上类似,并遵循相同的模式。

警告

请注意,安装 ABRT 软件包会覆盖 /proc/sys/kernel/core_pattern 文件,该文件可包含用于命名 core-dump 文件的模板。此文件的内容将被覆盖:

|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

有关如何使用 Yum 软件包管理器安装软件包的常规信息,请参阅 第 9.2.4 节 “安装软件包”

25.2.1. 安装 ABRT GUI

ABRT 图形用户界面 为在桌面环境中工作提供了易于使用的前端。您可以以 root 用户身份运行以下命令安装所需的软件包:

~]# yum install abrt-desktop

安装时,ABRT 通知小程序配置为在图形桌面会话启动时自动启动。您可以通过在终端中运行以下命令来验证 ABRT 小程序是否正在运行:

~]$ ps -el | grep abrt-applet
0 S  500 2036 1824 0 80  0 - 61604 poll_s ?    00:00:00 abrt-applet

如果小程序没有运行,您可以通过运行 abrt-applet 程序在当前桌面会话中手动启动它:

~]$ abrt-applet &
[1] 2261

25.2.2. 为命令行安装 ABRT

命令行界面在无外设计算机、通过网络连接的远程系统或脚本中非常有用。您可以以 root 用户身份运行以下命令安装所需的软件包:

~]# yum install abrt-cli

25.2.3. 安装补充 ABRT 工具

要接收关于 ABRT 检测到的崩溃的电子邮件通知,您需要安装 libreport-plugin-mailx 软件包。您可以以 root 用户身份执行以下命令来安装它:

~]# yum install libreport-plugin-mailx

默认情况下,它会在本地计算机上向 root 用户发送通知。电子邮件目标可以在 /etc/libreport/plugins/mailx.conf 文件中配置。

要在登录时在控制台中显示通知,还要安装 abrt-console-notification 软件包。

ABRT 可以检测、分析和报告各种类型的软件故障。默认情况下,安装 ABRT 支持最常见的故障类型,如 C 和 C++ 应用程序的崩溃。对其他类型的故障的支持由独立的软件包提供。例如,要安装对使用 Java 语言编写的应用程序中检测异常的支持,以 root 用户身份运行以下命令:

~]# yum install abrt-java-connector

有关 ABRT 支持的语言和软件项目列表,请查看 第 25.4 节 “检测软件问题”。部分还包含启用检测各种故障类型的所有对应软件包的列表。

25.2.4. 启动 ABRT 服务

abrtd 守护进程需要存在 abrt 用户,以便在 /var/spool/abrt 目录中执行文件系统操作。安装 abrt 软件包时,如果此类用户尚不存在,它会自动创建 UID 和 GID 为 173 的 abrt 用户。否则,可以 手动创建 abrt 用户。在这种情况下,可以选择任何 UID 和 GID,因为 brtd 不需要特定的 UID 和 GID。

abrtd 守护进程配置为在引导时启动。您可以使用以下命令来验证其当前状态:

~]$ systemctl is-active abrtd.service
active

如果 systemctl 返回 inactiveunknown,则守护进程没有运行。您可以以 root 用户身份输入以下命令来为当前会话启动它:

~]# systemctl start abrtd.service

您可以使用同样的命令来启动或检查相关错误检测服务的状态。例如,如果您希望 ABRT 检测到 C 或 C++ 崩溃,请确保 abrt-ccpp 服务正在运行。有关所有可用 ABRT 检测服务及其相应软件包的列表,请参阅 第 25.4 节 “检测软件问题”

abrt-vmcoreabrt-pstoreoops 服务除外,这些服务仅在内核 panic 或内核 oops 发生时启动,所有 ABRT 服务将在安装相应软件包时自动启用并启动。您可以使用 systemctl 工具禁用或启用任何 ABRT 服务,如 第 10 章 使用 systemd 管理服务 所述。

25.2.5. 测试 ABRT 崩溃检测

要测试 ABRT 正常工作,请使用 kill 命令发送 SEGV 信号以终止进程。例如,启动一个 睡眠 进程并使用 kill 命令终止它:

~]$ sleep 100 &
[1] 2823
~]$ kill -s SIGSEGV 2823

ABRT 执行 kill 命令后很快检测到崩溃,如果图形会话正在运行,GUI 通知小程序将通知用户检测到的问题。在命令行中,您可以通过运行 abrt-cli list 命令或检查 /var/spool/abrt/ 目录中创建的崩溃转储来检查是否检测到了崩溃。有关如何使用检测到的崩溃的更多信息,请参阅 第 25.5 节 “处理检测到的问题”