25.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 パッケージマネージャーでパッケージをインストールする方法は 「パッケージのインストール」 を参照してください。
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.2.4. ABRT サービスの起動
abrtd
デーモンは、abrt
ディレクトリーでファイルシステムを管理するために、/var/spool/abrt
ユーザーを必要とします。abrt パッケージがインストールされたときに、UID と GID が 173 の abrt
ユーザーが存在していない場合は自動的に作成されます。それ以外の場合は、abrt
ユーザーを手動で作成できます。その場合、abrtd
は特定の UID と GID を要求しないため、任意の UID と GID を選択できます。
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 サービスは、10章systemd によるサービス管理 に説明されているとおり、systemctl
ユーティリティーを使うことで無効または有効にできます。
25.2.5. ABRT のクラッシュ検出テスト
ABRT が正常に機能することをテストするには、kill
コマンドを使用して SEGV 信号を送信し、プロセスを終了します。たとえば、以下の方法で sleep
プロセスを開始して、kill
コマンドでそれを終了します。
~]$sleep 100 &
[1] 2823 ~]$kill -s SIGSEGV 2823
ABRT は kill
コマンドの実行直後にクラッシュを検出し、グラフィカルセッションが実行されている場合に、GUI 通知アプレットにより検出された問題がユーザーに通知されます。コマンドラインで、abrt-cli list
コマンドを実行するか、/var/spool/abrt/
ディレクトリーに作成されたクラッシュダンプを調べることで、クラッシュが検出されていることを確認できます。検出されたクラッシュを処理する方法は、「検出された問題の処理」 を参照してください。