JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 での一般的な問題のトラブルシューティング     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  システムクラッシュ情報の管理 (タスク)

2.  コアファイルの管理 (タスク)

コアファイルの管理

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

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

コアファイル名パターンの設定

setuid プログラムがコアファイルを作成できるようにする

コアファイルの管理 (タスクマップ)

現在のコアダンプ構成の表示

コアファイル名パターンを設定する方法

プロセス別コアファイルパスを有効にする方法

グローバルのコアファイルパスを有効にする方法

コアファイルのトラブルシューティング

コアファイルの調査

3.  システムおよびソフトウェアのトラブルシューティング (タスク)

4.  その他各種のシステムおよびソフトウェアの トラブルシューティング (タスク)

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

コアファイルの管理

コアファイルは、プロセスまたはアプリケーションが異常終了した場合に生成されます。コアファイルは coreadm コマンドで管理します。たとえば、coreadm コマンドを使用して、プロセスコアファイルをすべて同じシステムディレクトリに置くようにシステムを構成できます。プロセスやデーモンが異常終了した場合に、特定のディレクトリにあるコアファイルを調べればよいため、問題の追跡が容易になります。

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

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

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

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

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

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

変数名
変数の定義
%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 コマンドでは、デフォルトのプロセス別コアファイルパターンを設定します。この設定は、デフォルトのコアファイルパターンを明示的に上書きしていないプロセスに対して適用されます。この設定はシステムリブート後も有効です。たとえば、次の coreadm コマンドで、init プロセスによって開始されるすべてのプロセスのグローバルコアファイルパターンを設定します。このパターンはシステムリブート後も有効です。

# coreadm -i /var/core/core.%f.%p

次の coreadm コマンドでは、任意のプロセスに対しプロセス別コアファイル名パターンを設定します。

# coreadm -p /var/core/core.%f.%p $$

$$ 記号には、現在実行中のシェルのプロセス ID を指定します。プロセス別コアファイル名パターンは、すべての子プロセスに継承されます。

グローバルまたはプロセス別のコアファイル名パターンを設定したら、これを coreadm -e コマンドで有効にする必要があります。詳細については次の手順を参照してください。

このコマンドをユーザーの初期設定ファイル (たとえば .profile) に入れておけば、ユーザーのログインセッションで実行するすべてのプロセスに対しコアファイル名パターンを設定できます。

setuid プログラムがコアファイルを作成できるようにする

coreadm コマンドを使って setuid プログラムを有効または無効にすれば、次のパス設定を行うことによって、すべてのシステムプロセスに対して、または各プロセスに対してコアファイルを作成できます。

デフォルトでは、両方のフラグが無効になっています。セキュリティー上の理由により、グローバルコアファイルパスは、/ で始まるフルパス名であることが必要です。root がプロセス別コアファイルを無効にすると、個別のユーザーがコアファイルを得ることはできなくなります。

setuid コアファイルは root によって所有され、root だけに読み取り/書き込み権が与えられます。通常ユーザーは、たとえ setuid コアファイルを生成したプロセスを所有していても、それらのファイルにアクセスできません。

詳細は、coreadm(1M) のマニュアルページを参照してください。

コアファイルの管理 (タスクマップ)

タスク
説明
参照先
1. 現在のコアダンプ構成を表示する
coreadm コマンドを使用して、現在のコアダンプ構成を変更する
2. コアダンプ構成を変更する

次のいずれかの手順を実行して、コアダンプ構成を変更する

  • コアファイル名パターンを設定する
  • プロセス別コアファイルのパスを有効にする

  • グローバルのコアファイルのパスを有効にする

3. コアダンプファイルを調べる
proc ツールを使用して、コアダンプファイルを表示する

現在のコアダンプ構成の表示

現在のコアダンプ構成を表示するには、オプションを指定しないで coreadm コマンドを実行します。

$ coreadm
               global core file pattern: 
     global core file content: default
       init core file pattern: core
       init core file content: default
            global core dumps: disabled
       per-process core dumps: enabled
      global setid core dumps: disabled
 per-process setid core dumps: disabled
     global core dump logging: disabled

コアファイル名パターンを設定する方法

プロセス別コアファイルパスを有効にする方法

  1. root 役割になります。

    『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. プロセス別コアファイルのパスを有効にする
    # coreadm -e process
  3. 現在のプロセスのコアファイルパスを表示して構成を確認します。
    # coreadm $$
    1180:   /home/kryten/corefiles/%f.%p

グローバルのコアファイルパスを有効にする方法

  1. root 役割になります。

    『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. グローバルのコアファイルのパスを有効にする
    # coreadm -e global -g /var/core/core.%f.%p
  3. 現在のプロセスのコアファイルパスを表示して構成を確認します。
    # coreadm
           global core file pattern: /var/core/core.%f.%p
         global core file content: default
           init core file pattern: core
           init core file content: default
                global core dumps: enabled
           per-process core dumps: enabled
          global setid core dumps: disabled
     per-process setid core dumps: disabled
         global core dump logging: disabled