24.2. ABRT のインストールとそのサービスの起動

ABRT を使用するためには、abrt-desktop または abrt-cli パッケージがシステムにインストールされていることを確認します。abrt-desktop パッケージは ABRT 用のグラフィカルユーザーインターフェースを提供し、abrt-cli パッケージにはコマンドラインで ABRT を使用するためのツールが含まれています。これら両方をインストールすることもできます。ABRT GUI とコマンドラインツールの全般的なワークフローは手順的には似通っており、同様のパターンになります。

警告

ABRT パッケージをインストールすると、コアダンプファイルの命名に使用するテンプレートを含む /proc/sys/kernel/core_pattern ファイルが上書きされることに注意してください。このファイルのコンテンツは、以下のように上書きされます。
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Yum パッケージマネージャーでパッケージをインストールする方法の一般的な情報については、「パッケージのインストール」 を参照してください。

24.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

24.2.2. コマンドライン用の ABRT のインストール

コマンドラインインターフェース は、ヘッドレスマシンやネットワーク接続されたリモートシステム、またはスクリプト内で役立ちます。root ユーザーで以下のコマンドを実行すると、必要なパッケージをインストールできます。
~]# yum install abrt-cli

24.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 がサポートする言語およびソフトウェアプロジェクトの一覧は、「ソフトウェア問題の検出」 を参照してください。このセクションには、様々なタイプの障害の検出を可能にするすべての対応パッケージの一覧も含まれています。

24.2.4. ABRT サービスの起動

abrtd デーモンは、/var/spool/abrt ディレクトリでファイルシステムを管理するために、abrt ユーザーを必要とします。abrt パッケージがインストールされたときにこのユーザーが存在していない場合、abrt ユーザーは自動的に作成されます。UID と GID は 173 です。それ以外の場合、abrt ユーザーは手動で作成できます。その場合、abrtd は特定の UID と GID を要求しないため、任意の UID と GID を選択できます。
abrtd デーモンは、ブート時に起動するように設定されています。以下のコマンドを使うと、現在のステータスを確認できます。
~]$ systemctl is-active abrtd.service
active
systemctlinactive または unknown を返した場合、デーモンは実行されていません。以下のコマンドを root として入力すると、現在のセッションにデーモンを開始することができます。
~]# systemctl start abrtd.service
同じコマンドを使って、関連するエラー検出サービスを開始する、またはステータスチェックを行うことが可能です。たとえば、ABRT で C または C++ のクラッシュを検出したいときは、abrt-ccpp サービスが実行中であることを確認します。利用可能な ABRT 検出サービスと各パッケージの一覧については、「ソフトウェア問題の検出」をご覧ください。
カーネルパニックまたはカーネルウップスが発生したときのみ開始される abrt-vmcoreabrt-pstoreoops のサービスを除き、すべての ABRT サービスは、各パッケージがインストールされたときのブート時に、自動的に有効化され開始されます。ABRT サービスは、10章systemd によるサービス管理 に説明されているとおり、systemctl ユーティリティーを使うことで無効化または有効化できます。

24.2.5. ABRT のクラッシュ検出テスト

ABRT が正常に機能することをテストするには、kill コマンドを使って SEGV 信号を送信し、プロセスを終了します。たとえば、以下の方法で sleep プロセスを開始して、kill コマンドでそれを終了します。
~]$ sleep 100 &
[1] 2823
~]$ kill -s SIGSEGV 2823
ABRT は、kill コマンドを実行した直後にクラッシュを検出します。グラフィカルセッションを実行している場合、GUI の通知アプレットが検出された問題をユーザーに通知します。コマンドライン上で、abrt-cli list コマンドを実行するか、 /var/tmp/abrt/ ディレクトリで作成されたクラッシュダンプを確認すると、クラッシュが検出されたことをチェックできます。検出されたクラッシュの対処方法については 「検出された問題の処理」 をご覧ください。