22.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 パッケージマネージャーでパッケージをインストールする方法の一般的な情報については、「パッケージのインストール」 を参照してください。

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

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

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

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

22.2.4. ABRT サービスの起動

abrtd デーモンは、ブート時に起動するように設定されています。以下のコマンドを使うと、現在のステータスを確認できます。
~]$ systemctl is-active abrtd.service
active
systemctl コマンドが inactive または unknown を返す場合、デーモンは実行中ではありません。root で以下のコマンドを入力すると、現行セッションでデーモンを起動することができます。
~]# systemctl start abrtd.service
同じステップを実行して、さまざまなタイプの障害を処理するサービスのステータスをチェックしたり、サービスを起動できます。たとえば、ABRT で C または C++ のクラッシュを検出したい場合は、abrt-ccpp サービスが実行中であることを確認します。利用可能なすべての ABRT の検出サービスと対応するパッケージの一覧については、「ソフトウェア問題の検出」 を参照してください。
カーネルパニックまたは oops が実際に発生した場合にのみ起動する abrt-vmcore および abrt-pstoreoops サービスを除いて、対応するパッケージがインストールされている場合に ABRT のすべてのサービスをブート時に自動的に有効にし、起動することができます。ABRT サービスはすべて、9章systemd によるサービス管理 の説明にあるように systemctl ユーティリティーを使って無効にしたり有効にしたりすることができます。

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

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