Go to main content
Oracle® Solaris 11.3 でのシステムサービスの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

サービス構成の検査

サービス構成は、サービスおよびサービスインスタンスに対して設定されるプロパティーで表され、サービス構成リポジトリのレイヤーに格納されます。サービスに対して設定されたプロパティーは、そのサービスのすべてのインスタンスに継承されます。インスタンスに対して設定されたプロパティーは、そのインスタンスだけで使用されます。サービスインスタンスは、継承したプロパティーの値をカスタマイズでき、親サービスに対して定義されていない追加プロパティーを定義できます。

このセクションでは、プロパティー値を取得する方法と、値がサービスに対してグローバルか、インスタンスに固有か、ソフトウェアで提供されたものか、または管理カスタマイズであるかを識別する方法について説明します。

プロパティーおよびプロパティーグループの説明の表示

svccfg describe コマンドは、プロパティーの現在の値を含め、サービスのプロパティーグループおよびプロパティーの説明を表示します。オペランドを付けずに describe を実行すると、選択したサービスまたはサービスインスタンスのすべてのプロパティーグループおよびプロパティーの説明が表示されます。現在の値の説明や使用可能な値のリストなどの詳細を表示するには、-v オプションを使用します。テンプレート情報を表示するには、-t オプションを使用します。

$ svccfg -s pkg/server describe network/restart_on
network/restart_on astring     none
    Determines whether to restart the service due to a dependency refresh, restart, or failure.
$ svccfg -s pkg/server describe -v network/restart_on
network/restart_on astring     none
    type: astring
    required: true
    Determines whether to restart the service due to a dependency refresh, restart, or failure.
    visibility: readwrite
    minimum number of values: 1
    maximum number of values: 1
  value: none
    value description: Never restart due to dependency refresh, restart, or failure.
  value constraints:
    value name: none
    value name: error
    value name: restart
    value name: refresh

サービスおよびインスタンスのプロパティー値の表示

このセクションの例では、サービスおよびインスタンスのプロパティーとプロパティーグループを、別々のビュー、レイヤー、およびスナップショットで表示する方法について説明します。

使用例 6  現在使用中のインスタンスおよび継承したプロパティーの一覧表示

svcprop コマンドはデフォルトで、実行中のスナップショットでプロパティーに割り当てられている値を表示します。これが現在使用されている値です。デフォルトでは、svcprop コマンドは、実行中のスナップショットの合成ビューでプロパティーを表示します。つまり、インスタンス固有のプロパティーと継承されたプロパティーの両方が表示されます。継承されたプロパティーの値がインスタンスでカスタマイズされている場合、そのインスタンスで設定された値が表示されます。出力では、プロパティーごとに 1 行ずつ表示され、プロパティーグループとプロパティー名 (スラッシュで区切られます)、プロパティー値のデータタイプ、およびプロパティー値が示されます。プロパティーまたはグループ名が指定されていない場合、実行中のスナップショット内のすべてのプロパティー値が示されます。

FMRI またはパターンオペランドで完全なサービス名を指定しているが、インスタンスを指定していない場合、サービスに対してのみ設定されたプロパティーが表示されます。インスタンスに対してのみ設定されたプロパティーは表示されません。次のコマンドは、サービス依存関係、サービスのタイプ、プロファイルおよびマニフェストファイルのパスなどのプロパティーを表示します。

$ svcprop svc:/system/identity

インスタンスを指定すると、親サービスから継承され、そのインスタンスおよびプロパティーについてカスタマイズされたプロパティーの合成ビューが表示されます。次のコマンドは、親サービスおよびプロパティーからこのインスタンスに継承されたプロパティーを含め、指定されたインスタンスの実行中のスナップショット内のプロパティーをすべて一覧表示します。継承されたプロパティーの値がこのインスタンスに対してカスタマイズされている場合は、カスタマイズされた値が表示されます。この例では、追加の依存関係、このインスタンスを起動する実行可能ファイルへのパス、このインスタンスのログファイルへのパス、このインスタンスの状態に関する情報などのプロパティーを表示します。

$ svcprop svc:/system/identity:domain
使用例 7  現在使用されている指定のプロパティーまたはプロパティーグループの一覧表示

特定のプロパティーグループ内の特定のプロパティーまたはすべてのプロパティーを表示するには、-p オプションを使用します。

$ svcprop -p pkg/port pkg/server
svc:/application/pkg/server:oss:properties/pkg/port count 82
svc:/application/pkg/server:s11:properties/pkg/port count 81
svc:/application/pkg/server:default:properties/pkg/port count 80
$ svcprop -p pkg pkg/server:s11
pkg/inst_root astring /export/ipsrepos/Solaris11
pkg/port count 81
...
pkg/ssl_cert_file astring ""
pkg/ssl_key_file astring ""
...
使用例 8  編集ビューでのサービスおよびインスタンス値の一覧表示

オプションを付けて svcprop コマンドを実行すると、実行中のスナップショットの代わりに、編集ビューを表示できます。編集ビューには最新の変更が表示されます。編集ビューでの変更は、インスタンスのリフレッシュまたは再起動によって、実行中のスナップショットにコミットされている場合も、コミットされていない場合もあります。次のコマンドは、実行中のスナップショットと編集ビューとの違いを示します。oss インスタンスと s11 インスタンスは作成されたばかりであり、プロパティー値は変更されていますが、インスタンスはまだリフレッシュされていません。

次のコマンドは、実行中のスナップショットの合成ビューを表示します。これらのインスタンスがカスタマイズされてからリフレッシュされていないので、表示される値は pkg/server サービスの値になります。

$ svcprop -p pkg/port pkg/server
svc:/application/pkg/server:oss/:properties/pkg/port count 80
svc:/application/pkg/server:s11/:properties/pkg/port count 80
svc:/application/pkg/server:default/:properties/pkg/port count 80

-c オプションは、編集値の合成ビューを表示します。

$ svcprop -c -p pkg/port pkg/server
svc:/application/pkg/server:oss/:properties/pkg/port count 82
svc:/application/pkg/server:s11/:properties/pkg/port count 81
svc:/application/pkg/server/:properties/pkg/port count 80

-C オプションは、合成せずに編集値を表示します。これは合成ビューではないので、カスタマイズされていないインスタンスの値はありません。

$ svcprop -C -p pkg/port pkg/server
svc:/application/pkg/server:oss/:properties/pkg/port count 82
svc:/application/pkg/server:s11/:properties/pkg/port count 81
svcprop: Couldn't find property 'pkg/port' for instance 'svc:/application/pkg/server:default'.

svccfg コマンドはデフォルトで、実行中のスナップショットの値ではなく、編集中のプロパティー値を表示します。指定のスナップショットでの値の表示で説明しているように selectsnap サブコマンドを使用することによって、svccfg で、実行中のスナップショットの値を強制的に表示させることができます。

svccfg コマンドは、親サービスを指定した場合は親サービスの値だけを、インスタンスを指定した場合はインスタンスの値だけを表示します。svccfg listprop コマンドの出力がない場合は、指定したプロパティーが、指定した親サービスまたはインスタンスに対して設定されていない可能性があります。プロパティーが削除された場合は、構成カスタマイズの表示で説明しているように、listcust -M を使用して、マスクされた値を表示します。

次のコマンドは、プロパティーグループまたはプロパティー名が指定されていないので、指定されたサービスの編集中のプロパティー値をすべて一覧表示します。svcprop svc:/system/identity コマンドによって表示された出力に加え、この出力には、プロパティーグループの名前およびタイプとテンプレートデータが含まれます。

$ svccfg -s svc:/system/identity listprop

次のコマンドは、指定したサービスインスタンスの編集中のプロパティー値をすべて一覧表示します。このコマンドは合成ビューを表示しないので、この出力には、プロファイルファイルおよびマニフェストファイルへのパスなどは表示されません。

$ svccfg -s svc:/system/identity:domain listprop
使用例 9  編集ビューでの指定のプロパティーまたはプロパティーグループの一覧表示

次のコマンドは、指定したサービスインスタンスの指定したプロパティーグループでの編集中のプロパティー値をすべて一覧表示します。-o オプションを使用すると、表示する列を選択できます。有効な列の名前のリストについては、svccfg(1M) のマニュアルページを参照してください。

$ svccfg -s pkg/server:s11 listprop pkg
pkg                  application
pkg/inst_root       astring      /export/ipsrepos/Solaris11
pkg/port            count        81
$ svccfg -s pkg/server:s11 listprop -o propname,value pkg
inst_root      /export/ipsrepos/Solaris11
port           81

プロパティーグループタイプでのプロパティーの表示

プロパティー名またはプロパティーグループ名でプロパティー値を表示するだけでなく、プロパティーグループタイプでプロパティー値を表示することもできます。

使用例 10  プロパティーグループとそのタイプの表示

svccfg コマンドの listpg サブコマンドは、各プロパティーグループの名前とタイプを表示します。

$ svccfg -s pkg/server listpg
pkg             application
pkg_bui         application
pkg_secure      application
fs              dependency
autofs          dependency
ntp             dependency
network         dependency
general         framework
manifestfiles   framework
start           method
stop            method
tm_common_name  template
$ svccfg -s pkg/server:s11 listpg
pkg        application
general    framework
restarter  framework              NONPERSISTENT

非永続プロパティーグループは通常、アクティブなプログラム状態を保持します。非永続プロパティーグループ内のプロパティーの値は、システムブート中にクリアされます。

プロパティーグループ名を指定すると、そのプロパティーグループのタイプだけが表示されます。

$ svccfg -s pkg/mirror listpg config
config  application
使用例 11  プロパティーグループタイプのプロパティーの一覧表示

-g オプションを付けて svcprop コマンドを実行すると、特定のプロパティーグループタイプのプロパティーが表示されます。

$ svcprop -g com.sun,fw_configuration smtp
firewall_config/apply_to astring ""
firewall_config/exceptions astring ""
firewall_config/policy astring use_global
firewall_config/value_authorization astring solaris.smf.value.firewall.config

複数の -g オプションが指定されると、指定されたすべてのタイプのプロパティーグループのプロパティーが表示されます。

$ svcprop -g application -g com.sun,fw_configuration smtp
config/include_info boolean false
config/local_only boolean true
config/path_to_sendmail_mc astring ""
config/value_authorization astring solaris.smf.value.sendmail
firewall_config/apply_to astring ""
firewall_config/exceptions astring ""
firewall_config/policy astring use_global
firewall_config/value_authorization astring solaris.smf.value.firewall.config

-p および -g の両方のオプションを使用する場合、-p オプション値でプロパティーグループの名前を指定しないでください。

$ svcprop -g plugin -p path auditd
audit_binfile/path astring audit_binfile.so
audit_syslog/path astring audit_syslog.so
audit_remote/path astring audit_remote.so

値が設定されているレイヤーの表示

サービス構成リポジトリは、データのソースに応じて、レイヤーにプロパティーデータを格納します。svcpropsvccfg のどちらのコマンドでも、プロパティー値のソースであるレイヤーを表示できます。svcprop コマンドおよび svccfg コマンドの -l オプションには、情報を表示するレイヤーを指定する引数が必要です。引数値は、manifestsystem-profilesite-profile、および admin です。出力には、特定のプロパティー値の設定がサービスマニフェストで行われたか、プロファイルで行われたか、管理者またはアプリケーションによって行われたかが示されます。レイヤーについては、リポジトリレイヤーを参照してください。キーワード all は、すべてのレイヤーを表す別名です。指定したレイヤーが必要なプロパティー値のソースでない場合、出力は表示されません。

次のコマンドは、プロパティー値の一部がサービスマニフェストからのものであり、一部は管理者が設定したものであることを示します。プロパティーの一部は複数のレイヤーに値があります。pkg/readonly プロパティーは、サービスマニフェストに値が設定されており、管理者もその同じ値を設定します。別々のレイヤーの値は異なる可能性があります。

$ svcprop -l all -p pkg pkg/server:s11
pkg/port count admin 81
pkg/inst_root astring admin /export/ipsrepos/Solaris11
pkg/address net_address manifest
pkg/cfg_file astring manifest ""
...
pkg/readonly boolean manifest true
pkg/readonly boolean admin true
...

svccfg listprop コマンドの -l オプションは、引数 current を取ることもできます。current-l の引数として使用すると、-l オプションを使用しない場合に表示されるものと同じプロパティー値が表示されます。出力における唯一の違いは、レイヤーの名前も表示される点です。サービス構成リポジトリは非永続データのレイヤー情報を格納しないので、非永続データはレイヤー名を表示しません (3 番目の列には <none> と表示されます)。非永続プロパティーグループには通常、アクティブなプログラム状態が保持され、非永続プロパティーグループ内のプロパティーの値はシステムブート中にクリアされます。

$ svccfg -s pkg/server:s11 listprop -l current
pkg                                application admin
pkg/inst_root                     astring     admin     /export/ipsrepos/Solaris11
pkg/port                          count       admin     81
general                            framework   admin
general/complete                  astring     manifest
general/enabled                   boolean     admin     true
restarter                          framework   <none>       NONPERSISTENT
restarter/logfile                 astring      <none>    /var/svc/log/application-pkg-server:default.log
restarter/contract                count        <none>    121
restarter/start_pid               count        <none>    1055
restarter/start_method_timestamp  time         <none>    1379605275.329096000
restarter/start_method_waitstatus integer      <none>    0
restarter/auxiliary_state         astring      <none>    dependencies_satisfied
restarter/next_state              astring      <none>    none
restarter/state                   astring      <none>    online
restarter/state_timestamp         time         <none>    1379605275.332259000

構成に関係したファイルの表示

次のコマンドは、localtime プロパティーがサービスマニフェストでは UTC に設定され、/etc/svc/profile/site ディレクトリのプロファイルでは US/Pacific に設定されていることを示します。site-profile レイヤーで設定された値は admin 構成であり、manifest レイヤーで設定された値をオーバーライドします。

$ svcprop -l all -p timezone/localtime system/timezone:default
timezone/localtime astring manifest UTC
timezone/localtime astring admin US/Pacific
$ svccfg -s system/timezone:default listprop -l all -o propname,layer,value \
> timezone/localtime
localtime          admin          US/Pacific
localtime          manifest       UTC

svccfg listprop コマンドの -f オプションまたは -o file オプションのいずれかを使用して、構成に関係したファイルの名前を表示します。

$ svccfg -s system/timezone:default listprop -l all -f timezone/localtime
localtime          -  US/Pacific
localtime          /lib/svc/manifest/system/timezone.xml  UTC
$ svccfg -s system/timezone:default listprop -l all -o propname,value,file \
> timezone/localtime
localtime          US/Pacific -
localtime          UTC /lib/svc/manifest/system/timezone.xml

指定のスナップショットでの値の表示

次のコマンドは、このサービスインスタンスで利用できるスナップショットを一覧表示します。svcprop または svccfg のどちらかでこれらのスナップショット名を使用すると、そのスナップショットで設定されたプロパティーの値が表示されます。スナップショットはインスタンスだけにあります。サービスにはスナップショットはありません。サービス構成リポジトリのスナップショットの詳細は、リポジトリのスナップショットを参照してください。

$ svccfg -s pkg/server:default listsnap
initial
previous
running
start
$ svccfg -s pkg/server:s11 listsnap
previous
running
start

次のコマンドは、pkg/inst_root プロパティーの値が以前のスナップショットで異なっていたことを示します。

$ svcprop -s previous -p pkg/inst_root pkg/server:s11
/var/share/pkg/repositories/solaris
$ svccfg -s pkg/server:s11
svc:/application/pkg/server:s11> selectsnap previous
[previous]svc:/application/pkg/server:s11> listprop pkg/inst_root
pkg/inst_root astring     /var/share/pkg/repositories/solaris
[previous]svc:/application/pkg/server:s11> exit

構成カスタマイズの表示

svccfg listcust コマンドは、指定されたサービスの admin レイヤーでのカスタマイズを表示します。site-profile レイヤーでのカスタマイズも表示するには、-L オプションを使用します。

次のコマンドは、pkg/server:solaris サービスの admin レイヤーでのすべてのカスタマイズを示しています。

$ svccfg -s pkg/server:solaris listcust
general                           framework   admin
general/complete                  astring     admin
general/enabled                   boolean     admin                 true
pkg                               application admin
pkg/inst_root                     astring     admin                 /export/pkgrepos/solaris
pkg/port                          count       admin                 83
pkg/readonly                      boolean     admin                 true
pkg/standalone                    boolean     admin                 false

次のコマンドは、プロパティー config/nodename の定義は manifest レイヤーで指定されているが、値 solarisadmin レイヤーで設定されていることを示しています。

$ svccfg -s identity:node listprop -l all -o propname,layer,value config/nodename
nodename        admin      solaris
nodename        manifest

次のコマンドは、identity:node サービスの admin レイヤーのカスタマイズのみ示します。

$ svccfg -s identity:node listcust
config/loopback   astring     admin                 solaris

次のコマンドは、identity:node サービスのすべてのカスタマイズを示しています。

$ svccfg -s identity:node listcust -L
config            application node-profile
config/loopback   astring     admin                 solaris
config/nodename   astring     admin                 solaris
general           framework   site-profile
general/enabled   boolean     site-profile          true

svccfg listcust コマンドは、すべてのマスクされたエンティティーも表示します。マスクされたエンティティーだけを表示するには、-M オプションを使用します。svccfg delcust コマンドを使用する前に、svccfg listcust コマンドを使用して、削除される対象を検証します。マスクされたエンティティーの詳細は、プロパティーグループ、プロパティー、およびプロパティー値の削除smf(5)のマニュアルページを参照してください。