Go to main content
Oracle® Solaris 11.3 でのシステム管理のトラブルシューティング

印刷ビューの終了

更新: 2016 年 11 月
 
 

プロセス障害およびコアファイルについて

プロセスまたはアプリケーションが異常終了すると、システムでファイルのセットが自動的に生成されます。このプロセスを コアダンプと呼びます。作成されるファイルはコアファイルです。コアファイルとは、終了時のプロセスアドレス空間の内容と、プロセスの状態の追加情報のディスクコピーです。通常、コアファイルは、対応するアプリケーションのバグに起因するプロセスの異常終了後に生成されます。コアファイルには、プロセス障害の原因となった問題の診断に使用する重要な情報が提供されます。コアファイル作成のパラメータを参照してください。

実行中のシステム管理の一部として、coreadm コマンドを使用して、コアファイルの作成仕様を制御できます。たとえば、coreadm コマンドを使用して、プロセスコアファイルをすべて 1 つのシステムディレクトリに置き、問題を簡単に追跡できるようにシステムを構成できます。コアファイル仕様の管理を参照してください。

プロセスが異常終了した場合は、mdb などのデバッガや、proc ツールを使用して、作成されたコアファイルを調べることができます。プロセスの障害発生後にコアファイルを調べるを参照してください。

コアファイル作成のパラメータ

プロセスに障害が発生すると、システムは、グローバルコアファイル名パターンおよびプロセス別コアファイル名パターンを使用して、障害の発生したプロセスごとに最大 2 つのコアファイルの作成を試み、それぞれのコアファイル名を作成します。coreadm コマンドでは、これらの名前パターンを制御し、コアファイルの場所を指定します。このセクションでは、ファイルパスとファイル名のパラメータについて説明します。コアダンププロセスの詳細は、core(4) のマニュアルページを参照してください。coreadm オプションの詳細は、coreadm(1M) のマニュアルページを参照してください。

構成可能なコアファイルのパス

プロセスが異常終了すると、コアファイルがデフォルトで現在のディレクトリに作成されます。グローバルコアファイルのパスが有効になっていると、プロセスが異常終了するたびにコアファイルが 2 つ、1 つは現在の作業ディレクトリに、1 つはグローバルコアファイルの場所にそれぞれ作成されます。使用されるファイルパスは、構成可能なパラメータです。

    次の 2 つの構成可能なコアファイルのパスは、個別に有効または無効にできます。

  • プロセス別コアファイルのパスは、デフォルトでコアに設定されており、デフォルトで有効になっています。プロセス別コアファイルのパスが有効になっていると、プロセスが異常終了したときにコアファイルが生成されます。プロセス別のパスは、親プロセスから新しいプロセスに継承されます。

    プロセス別コアファイルは生成されるとプロセスの所有者によって所有され、所有者には読み取り/書き込み権が与えられます。所有者だけがこのファイルを表示できます。

  • グローバルコアファイルのパスは、デフォルトでコアに設定されており、デフォルトで無効になっています。このパスが有効になっていると、プロセス別コアファイルのパスと同じ内容のコアファイルがグローバルコアファイルのパスに追加で作成されます。

    グローバルコアファイルは生成されると root によって所有され、root だけに読み取り/書き込み権が与えられます。アクセス権のないユーザーはこのファイルを表示できません。


注 -  デフォルトでは、setuid プロセスは、グローバルの設定やプロセス別のパスを使ってコアファイルを生成することはありません。

拡張されたコアファイル名

コアファイルの名前には、障害の発生したプロセスの情報のフィールドが含まれます。コアファイル名のフィールドの詳細は、coreadm(1M) のマニュアルページを参照してください。このセクションでは、グローバル変数について重点的に説明します。

グローバルコアファイルディレクトリが有効な場合、次の変数を使用して、コアファイルを相互に区別できます。

%d

実行ファイルのディレクトリ名。最大文字数は MAXPATHLEN

%f

実行ファイルの名前。最大文字数は MAXCOMLEN

%g

実効グループ ID

%m

マシン名 (uname -m)

%n

システムノード名 (uname -n)

%p

プロセス ID

%t

time(2) の 10 進数

%u

実効ユーザー ID

%z

プロセスが実行されているゾーン名 (zonename)

%%

リテラル %

たとえば、/var/core/core.%f.%p がグローバルコアファイルパスとして設定されているとします。PID 12345sendmail プロセスが異常終了した場合は、コアファイルとして /var/core/core.sendmail.12345 が生成されます。

コアファイルダンプのパフォーマンスの改善

一部のプロセスのバイナリイメージをコアダンプから除外することで、システムのコアファイルダンプのパフォーマンスを改善できます。coreadm コマンドを使用して、コアダンプの仕様をカスタマイズすると、DISM マッピング、ISM マッピング、System V 共有メモリーなどをコアダンプから除外するように指定できます。詳細は、 coreadm (1M) のマニュアルページを参照してください。