JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 でのサービスと障害の管理     Oracle Solaris 11.1 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  サービスの管理 (概要)

2.  サービスの管理 (タスク)

SMF サービスのモニタリング

サービスのモニタリング (タスクマップ)

サービスのステータスを一覧表示する方法

サービスのカスタマイズを一覧表示する方法

特定のサービスに依存するサービスを表示する方法

特定のサービスが依存するサービスを表示する方法

SMF 遷移イベントの通知を設定する方法

SMF サービスの管理

SMF サービス (タスクマップ)

RBAC 権利プロファイルを使って SMF を管理する

SMF サービスを作成する方法

サービスインスタンスを無効にする方法

サービスインスタンスを有効にする方法

サービスを再起動する方法

保守状態のサービスを復元する方法

SMF プロファイルを作成する方法

SMF プロファイルを手動で作成する方法

SMF プロファイルを適用する方法

SMF サービスの構成

SMF サービスの構成 (タスクマップ)

SMF サービスプロパティーの変更方法

1 つのサービスの複数プロパティーを変更する方法

ファイルで構成されているサービスの変更方法

サービスの環境変数を変更する方法

inetd 制御サービスのプロパティーを変更する方法

サービスのカスタマイズを削除する方法

inetd 制御サービスのコマンド行引数を変更する方法

inetd.conf エントリを変換する方法

実行制御スクリプトの使用

実行制御スクリプトの使用 (タスクマップ)

実行制御スクリプトを使用して従来のサービスを起動または停止する方法

実行制御スクリプトを追加する方法

実行制御スクリプトを無効にする方法

実行制御スクリプトを SMF サービスに変換する方法

サービス管理機能のトラブルシューティング

SMF のトラブルシューティング (タスクマップ)

起動していないサービスをデバッグする方法

破壊されたリポジトリを修復する方法

どのサービスも起動しないでブートする方法

詳細モードでブートする方法

ブート中に system/filesystem/local:default サービスで障害が発生した場合に sulogin プロンプトを強制的に表示する方法

3.  障害管理の使用

索引

サービス管理機能のトラブルシューティング

次の各作業は、SMF サービスのトラブルシューティングまたは修正の方法を示したものです。これらの手順の一部では、システムのブート方法を変更するためにブートパラメータを変更する方法も示します。

SMF のトラブルシューティング (タスクマップ)

次のタスクマップには、システムの問題をトラブルシューティングするために使用できる複数の手順が含まれています。各行には、タスク、そのタスクを行う場面の説明、およびタスクへのリンクが含まれます。

タスク
説明
参照先
実行中でないサービスをデバッグする
サービスが実行しない原因に関する情報を SMF サービスから収集します。
破壊されたリポジトリを修復する
破壊されたリポジトリを交換してシステムが完全にブートするようにする際に実行する手順。
どのサービスも起動しないでブートする
ブートプロセス中にハングアップするシステムをデバッグするために、すべてのサービスを実行させずにシステムをブートします。
より多くのブートメッセージを生成する
デバッグを支援するために、ブートプロセス中に多くのメッセージを作成する手順。
ローカルファイルシステムが使用できない場合にブートプロセスを停止する
ローカルファイルシステムがマウントされていない場合に、ログインサービスを起動することで、問題を調査できるようにするための手順。

起動していないサービスをデバッグする方法

この手順では、印刷サービスが無効になっています。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

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

  2. エラーのために実行されていないサービスに関する情報を要求します。
    # svcs -xv
    svc:/application/print/server:default (LP Print Service)
     State: disabled since Wed 13 Oct 2004 02:20:37 PM PDT
    Reason: Disabled by an administrator.
       See: http://support.oracle.com/msg/SMF-8000-05
       See: man -M /usr/share/man -s 1M lpsched
    Impact: 2 services are not running:
            svc:/application/print/rfc1179:default
            svc:/application/print/ipp-listener:default

    -x オプションを指定すると、影響を受けたサービスインスタンスに関する情報も表示されます。

  3. サービスを有効にします。
    # svcadm enable application/print/server

破壊されたリポジトリを修復する方法

この手順は、破壊されたリポジトリをデフォルトのリポジトリと交換する方法を示しています。リポジトリデーモン svc.configd が起動すると、構成リポジトリの整合性チェックが行われます。このリポジトリは、/etc/svc/repository.db に格納されています。このリポジトリは、次のいずれかが原因で破壊されることがあります。

整合性チェックに失敗すると、svc.configd デーモンは次のようなメッセージをコンソールに書き出します。

svc.configd: smf(5) database integrity check of:

    /etc/svc/repository.db

  failed.  The database might be damaged or a media error might have
  prevented it from being verified.  Additional information useful to
  your service provider is in:

    /system/volatile/db_errors

  The system will not be able to boot until you have restored a working
  database.  svc.startd(1M) will provide a sulogin(1M) prompt for recovery
  purposes.  The command:

    /lib/svc/bin/restore_repository

  can be run to restore a backup version of your repository. See
  http://support.oracle.com/msg/SMF-8000-MY for more information.

その後 svc.startd デーモンが終了し、sulogin が起動して保守作業を行えるようになります。

  1. sulogin プロンプトで root パスワードを入力します。

    sulogin コマンドでは、root ユーザーはシステム保守モードに入ってシステムを修復できます。

  2. 次のコマンドを実行します:
    # /lib/svc/bin/restore_repository

    このコマンドを実行すると、破壊されていないバックアップの復元に必要な手順が示されます。SMF では、システムの重要な局面でリポジトリのバックアップが自動的に作成されます。詳細は、「SMF リポジトリのバックアップ」を参照してください。

    /lib/svc/bin/restore_repository コマンドが起動すると、次のようなメッセージが表示されます。

    See http://support.oracle.com/msg/SMF-8000-MY for more information on the use of
    this script to restore backup copies of the smf(5) repository.
    
    If there are any problems which need human intervention, this script will
    give instructions and then exit back to your shell. 

    書き込み権を付けてルート (/) ファイルシステムをマウントしたあと、またはシステムがローカルゾーンである場合は、復元するリポジトリのバックアップを選択するよう求められます。

    The following backups of /etc/svc/repository.db exists, from
    oldest to newest:
    
    ... list of backups ...

    バックアップには、バックアップのタイプとバックアップが作成された時間に基づいて名前が付けられています。boot で始まっているのは、システムのブート後、リポジトリに対して最初の変更が行われる前に作成されたバックアップです。manifest_import で始まっているのは、svc:/system/manifest-import:default のプロセス終了後に作成されたバックアップです。バックアップ時間は、YYYYMMDD_HHMMSS 形式で記録されます。

  3. 適切な応答を入力します。

    通常は、最新のバックアップオプションを選択します。

    Please enter either a specific backup repository from the above list to
    restore it, or one of the following choices:
    
            CHOICE            ACTION
            ----------------  ----------------------------------------------
            boot              restore the most recent post-boot backup
            manifest_import   restore the most recent manifest_import backup
            -seed-            restore the initial starting repository  (All
                                customizations will be lost, including those
                                made by the install/upgrade process.)
            -quit-            cancel script and quit
    
    Enter response [boot]:

    復元するバックアップを指定しないで Enter を押した場合は、[] で囲まれたデフォルトの応答が選択されます。-quit- を選択すると、restore_repository スクリプトが終了して、シェルスクリプトに戻ります。


    注 - -seed- を選択すると、seed リポジトリが復元されます。このリポジトリは、初期インストールとアップグレード時に使用する目的で作成されたものです。seed リポジトリを回復の目的で使用するのは、最後の手段にしてください。


    復元するバックアップを選択すると、妥当性検証が行われ、その整合性がチェックされます。なんらかの問題があると、restore_repository コマンドによってエラーメッセージが表示され、別のバックアップを選択するよう促されます。有効なバックアップを選択すると、次の情報が表示され、最終確認を入力するよう促されます。

    After confirmation, the following steps will be taken:
    
    svc.startd(1M) and svc.configd(1M) will be quiesced, if running.
    /etc/svc/repository.db
        -- renamed --> /etc/svc/repository.db_old_YYYYMMDD_HHMMSS
    /system/volatile/db_errors
        -- copied --> /etc/svc/repository.db_old_YYYYMMDD_HHMMSS_errors
    repository_to_restore
        -- copied --> /etc/svc/repository.db
    and the system will be rebooted with reboot(1M).
    
    Proceed [yes/no]?
  4. yes と入力して障害を修復します。

    restore_repository コマンドが表示されたアクションをすべて実行すると、システムがリブートします。

どのサービスも起動しないでブートする方法

サービスの起動に関する問題が発生した場合、ブート時にシステムがハングアップする可能性があります。この手順は、そうした問題のトラブルシューティングを行う方法を示しています。

  1. どのサービスも起動しないでブートします。

    このコマンドを実行すると、svc.startd デーモンはすべてのサービスを一時的に無効にし、コンソール上で sulogin を起動します。

    ok boot -m milestone=none
  2. システムに root としてログインします。
  3. すべてのサービスを有効にします。
    # svcadm milestone all
  4. ブートプロセスがどこでハングアップするのかを確認します。

    ブートプロセスがハングアップしたら、動作していないサービスを確認するために、svcs -a を実行します。/var/svc/log のログファイル内でエラーメッセージの有無を確認します。

  5. 問題が解決したら、すべてのサービスが起動していることを確認します。
    1. 必要なサービスがすべてオンラインになっていることを確認します。
      # svcs -x
    2. console-login サービスの依存関係に問題がないことを確認します。

      このコマンドを使えば、コンソール上の login プロセスが実行されるかどうかを確認できます。

      # svcs -l system/console-login:default
  6. 通常のブートプロセスを継続します。

詳細モードでブートする方法

デフォルトでは、ブート中に表示されるメッセージのレベルは非表示モードに設定されており、この場合はサービスが起動してエラーが発生したときにメッセージが生成されます。システムのブート時に発生する問題をトラブルシューティングするとき、より多くのメッセージを表示したい場合もあります。この手順では、すべてのエラーメッセージが表示されるようにシステムをブートする方法を示します。

例 2-22 ブートメッセージをログに保管する

boot コマンドに -m debug オプションを指定すると、各サービスおよび各サービス起動についてのすべてのメッセージがログファイルに記録されます。

ブート中に system/filesystem/local:default サービスで障害が発生した場合に sulogin プロンプトを強制的に表示する方法

システムのブートに必要でないローカルファイルシステムは、svc:/system/filesystem/local:default サービスによってマウントされます。これらのファイルシステムのいずれかがマウントできない場合、このサービスは保守状態になります。システムの起動は続行され、filesystem/local に依存しないサービスは起動されます。依存関係を介して起動されるサービスで、オンラインになるために filesystem/local を必要とするものは、起動されません。

サービスで障害が発生した場合に、システムの起動の続行を許可する代わりに、ただちに sulogin プロンプトを表示するようシステムの構成を変更するには、次の手順に従ってください。

  1. system/console-login サービスを変更します。
    # svccfg -s svc:/system/console-login
    svc:/system/console-login> addpg site,filesystem-local dependency
    svc:/system/console-login> setprop site,filesystem-local/entities = fmri: svc:/system/filesystem/local
    
    svc:/system/console-login> setprop site,filesystem-local/grouping = astring: require_all
    
    svc:/system/console-login> setprop site,filesystem-local/restart_on = astring: none
    
    svc:/system/console-login> setprop site,filesystem-local/type = astring: service
    
    svc:/system/console-login> end
  2. サービスをリフレッシュします。
    # svcadm refresh console-login

注意事項

system/filesystem/local:default サービスで障害が発生したときは、svcs -vx コマンドを使用して障害を特定するようにしてください。障害が修正されたら、次のコマンドでエラー状態をクリアし、システムのブートを続行できるようにします。 svcadm clear filesystem/local