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 検出サービスと各パッケージの一覧は「ソフトウェア問題の検出」を参照してください。
カーネルパニックまたはカーネル oops が発生したときのみ開始する abrt-vmcore サービスと abrt-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/ ディレクトリーで作成されたクラッシュダンプを確認すると、クラッシュが検出されたことをチェックできます。検出されたクラッシュの対処方法は 「検出された問題の処理」 を参照してください。