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 サービス (タスクマップ)

次のタスクマップに、SMF サービスを管理するために必要な手順を示します。

タスク
説明
参照先
サービスを作成します。
SMF サービスを通じてスクリプトを管理できるようにします。
サービスインスタンスを無効にします。
実行中のサービスを停止し、サービスが再び起動しないようにします。
サービスインスタンスを有効にします。
特定のサービスを起動します。また、以降のリブート時にサービスが再起動されます。
特定のサービスを再起動します。
別個のコマンドを使用してサービスを無効化および有効化することなしにサービスを再起動します。
保守状態のサービスを復元します。
保守状態のサービスをクリーンアップして再起動する方法を示します。
プロファイルを作成します。
すべての変更を実行するために、svccfg コマンドを実行しなくてもカスタマイズを簡単に配備できるプロファイルを作成します。
カスタマイズを簡単に配備するためのプロファイルを手動で作成します。
プロファイルを適用します。
プロファイルの情報を使用して、必要に応じてサービスの無効化、有効化、またはカスタマイズを行います。

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

RBAC 権利プロファイルを使用して、root アクセス権を付与していないユーザーに一部の SMF サービスの管理を許可できます。権利プロファイルには、そのユーザーが実行できるコマンドを定義します。SMF のために次のプロファイルが作成されています。

承認については、smf_security(5) のマニュアルページを参照してください。権利プロファイルを割り当てる手順については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「ユーザーのセキュリティー属性を変更する方法」を参照してください。

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

管理者は、システムのブート中に作業を実行するスクリプトを記述することがよくあります。この手順では、スクリプトをサポートする SMF の利点を使用する方法を示します。

始める前に

スクリプトが必要とするサービスモデルを確認します。スクリプトが何らかの作業を実行し、長期間実行するプロセスを開始せずに終了するのであれば、ほとんどの場合は一時的なサービスです。スクリプトが長時間実行するデーモンを開始してから終了する場合、それは契約サービスです。サービスモデルについての詳細は、svc.startd(1M) のマニュアルページの期間セクションを参照してください。

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

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

  2. 開始メソッドスクリプトを /lib/svc/method/ex_svc にコピーします。
  3. 一時的なマニフェストを作成します。

    この例で、サービス名は site/ex_svc で、一時的なサービスであるため、停止メソッドは不要です。

    # svcbundle -o /tmp/ex_svc.xml -s service-name=site/ex_svc \
          -s start-method=/lib/svc/method/ex_svc -s model=transient
  4. マニフェストへの追加変更を行います。

    /tmp/ex_svc.xml 内のマニフェストが、必要な内容であることを確認します。

  5. マニフェストを適切なディレクトリにコピーします。
    # cp /tmp/ex_svc.xml /lib/svc/manifest/site/ex_svc.xml
  6. マニフェストをインポートし、サービスを開始します。
    # svcadm restart svc:/system/manifest-import

例 2-12 生成されたマニフェストを自動的にインストールする

マニフェストを /lib/svc/manifest/site に自動的にインストールするには、下に示すように -i オプションを付けて svcbundle コマンドを使用します。このコマンドはステップ 3 のコマンドの代わりに実行でき、他のステップを実行する必要はありません。

# svcbundle -i -s service-name=site/ex_svc \
        -s start-method=/lib/svc/method/ex_svc -s model=transient

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

サービスを無効にするには、次の手順に従います。サービスのステータス変化はサービス構成リポジトリ内に記録されます。サービスがいったん無効になると、その無効な状態はリブート後も維持されます。サービスを実行中の状態に戻す唯一の方法は、そのサービスを有効にすることです。

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

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

  2. 無効にするサービスに依存するサービスの有無を確認します。

    必要とするサービスがこのサービスに依存していた場合、このサービスを無効にできません。

    # svcs -D FMRI
  3. サービスを無効にします。
    # svcadm disable FMRI

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

サービスを有効にするには、次の手順に従います。サービスのステータス変化はサービス構成リポジトリ内に記録されます。サービスを有効にすると、システムのリブートまで有効な状態が持続しますが、サービスが起動するのはすべての依存関係が満たされた場合だけです。

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

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

  2. サービスを有効にします。
    # svcadm enable FMRI
  3. サービスが有効になっていることを確認します。
    # svcs -x FMRI
  4. サービスの依存関係を有効にします。

    必要な依存関係が無効になっている場合は、次のコマンドを使用して有効にします。

    # svcadm enable -r FMRI

例 2-13 シングルユーザーモードでサービスを有効にする

次のコマンドは rpcbind を有効にします。-t オプションを指定すると、サービスが一時モードで起動され、サービスリポジトリが変更されないため、この変更はリブートまで持続しません。-r オプションは、指定されたサービスのすべての依存関係を再帰的に有効にします。

# svcadm enable -rt rpc/bind

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

構成が変更されたなどの理由により現在実行中のサービスを再起動する必要が生じた場合、サービスの停止時と起動時に個々のコマンドを入力することなく、サービスの再起動を行えます。サービスの無効化と有効化を別々に行う必要があるのは、サービスの無効化後かつ有効化前に変更を反映する必要がある場合だけです。

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

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

  2. 特定のサービスを再起動します。
    # svcadm restart FMRI

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

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

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

  2. サービスが保守中である理由を特定します。
    # svcs -x FMRI

    指示されたログファイルまたはマニュアルページを参照して、エラーの内容を特定します。

  3. そのサービスに依存するプロセスのうち、停止していないものが存在しないかどうかを確認します。

    通常、サービスインスタンスが保守状態になっている場合、そのインスタンスに関連付けられたすべてのプロセスが停止しています。ただし、処理を進める前にそのことを確認する必要があります。次のコマンドは、選択された FMRI の契約 ID を一覧表示します。

    # svcs -o CTID FMRI
  4. (省略可能) 残っているプロセスをすべて強制終了します。

    svcs コマンドで表示されたすべてのプロセスに対して、この手順を繰り返します。

    # pkill -9 -c CTID
  5. サービスを復元します。
    # svcadm clear FMRI

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

プロファイルとは、SMF サービスの一覧とそれぞれを有効にするかどうかを示す XML ファイルのことです。プロファイルは、多くのサービスを一度に有効または無効にするために使用されます。プロファイルは、プロパティー値の設定、プロパティー値の追加、およびサービスやサービスのインスタンスの作成にも使用されます。すべてのサービスをプロファイルに含める必要はありません。効果的なプロファイルを作成するには、各プロファイルには有効または無効にする必要のあるサービスだけを含めるようにします。

svc:/system/rmtmpfiles サービスは、/tmp ディレクトリをブート時にクリーンアップする役割を担っています。デフォルトでは、rmtmpfiles サービスは /var/tmp をクリーンアップしません。ブートプロセス中に /var/tmp をクリーンアップする場合、options/clean_vartmp プロパティーを true に設定することによって動作を変更できます。これを複数のシステムに対して実行する場合、もっとも簡単な方法は、プロファイルを作成し、それをこれらのシステムの /etc/svc/profile/site に配置することです。

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

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

  2. プロファイルを作成します。

    このコマンドにより、/tmp/rmtmpfiles.xml に新しいプロファイルが作成され、これをあとで必要に応じて /etc/svc/profiles/site にコピーできます。

    # svcbundle -o /tmp/rmtmpfiles.xml -s service-name=system/rmtmpfiles \
            -s bundle-type=profile -s service-property=options:clean_vartmp:boolean:true
  3. プロファイルを適切なディレクトリにコピーします。
    # cp /tmp/rmtmpfiles.xml /etc/svc/profile/site/rmtmpfiles.xml
  4. manifest-import サービスを再起動し、プロファイルをシステムに適用します。
    # svcadm restart svc:/system/manifest-import

例 2-14 プロファイルの作成中に SMF プロファイルを自動的にインストールする

生成されたプロファイルをインストールするには -i オプションを使用します。コマンドはプロファイルを /etc/svc/profile/site/rmtmpfiles.xml に書き込みます。また、コマンドは manifest-import サービスを再起動してプロファイルを適用します。

# svcbundle -i -s service-name=system/rmtmpfiles \
        -s bundle-type=profile -s service-property=options:clean_vartmp:boolean:true

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

プロファイルとは、SMF サービスの一覧とそれぞれを有効にするかどうかを示す XML ファイルのことです。プロファイルは、多くのサービスを一度に有効または無効にするために使用されます。プロファイルは、プロパティー値の設定、プロパティー値の追加、およびサービスやサービスのインスタンスの作成にも使用されます。すべてのサービスをプロファイルに含める必要はありません。効果的なプロファイルを作成するには、各プロファイルには有効または無効にする必要のあるサービスだけを含めるようにします。

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

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

  2. プロファイルを作成します。

    この例では、svccfg コマンドを使用して、現在のシステムに対するローカルのカスタマイズを表すプロファイルを作成しています。代わりに、既存のプロファイルのコピーを作成し、それを編集することもできます。

    # svccfg extract> profile.xml

    同一のシステムが多数ある場合や、あとで復元できるようにシステム構成のアーカイブを作成する場合は、この手順を使用して単一の SMF プロファイルを作成することもできます。

  3. profile.xml ファイルを編集して、必要な変更を加えます。
    1. service_bundle 宣言内のプロファイルの名前を変更します。

      この例では、profile という名前に変更しています。

      # cat profile.xml
        ...
      <service_bundle type=`profile` name=`profile`
          xmIns::xi='http://www.w3.org/2003/XInclude'
        ...
    2. このプロファイルで管理すべきでないサービスをすべて削除します。

      各サービスについて、サービスを説明する 3 行を削除します。各サービスの説明は、<service で始まり、</service で終わります。この例は、LDAP クライアントサービスの行を示しています。

      # cat profile.xml
       ...
       <service name='network/ldap/client' version='1' type='service'>
               <instance  name='default' enabled='true'/>
       </service>
    3. このプロファイルで管理すべきサービスをすべて追加します。

      上記の 3 行の構文を使用して各サービスを定義する必要があります。

    4. 必要に応じて、選択したサービスの enabled フラグを変更します。

      この例では、sendmail サービスを無効にしています。

      # cat profile.xml
        ...
        <service  name='network/smtp' version='1' type='service'>
          <instance  name='sendmail' enabled='false'/>
        </service>
        ...
  4. 必要に応じて、この新しいプロファイルを適用します。

    手順については、「SMF プロファイルを適用する方法」を参照してください。

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

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

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

  2. プロファイルを適用します。

    この例では、profile.xml を適用しています。

    # svccfg apply profile.xml