マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

svcprop(1)

名前

svcprop - サービス構成プロパティーの値の取得

形式

svcprop [-afqtv] [-C | -c | -s snapshot] [-p [name/]name]... 
     [ -g pgtype]... -l layer[,...] {FMRI | pattern}...
svcprop -w [-fqtv] [-p [name/]name] {FMRI | pattern}

説明

svcprop ユーティリティーは、サービス構成リポジトリにあるプロパティーの値を出力します。プロパティーの選択は、 –p オプションとオペランドで行います。–p を使用してプロパティーまたはプロパティーグループを明確に選択しない場合、svcprop は SMF テンプレート定義プロパティーを出力しません。将来のリリースでは、より多くの SMF インフラストラクチャープロパティーがデフォルト出力で非表示になる可能性があります。–a を使用すると、SMF テンプレート定義プロパティーを含むすべてのプロパティーが表示されます。

–C–c、または –s オプションを使用しない場合は、svcprop は有効なプロパティーにアクセスします。サービスの有効なプロパティーは、サービスに直接付属するプロパティーです。サービスインスタンスの有効なプロパティーは、「実行中の」スナップショットの合成されたビューのプロパティーと、インスタンスに直接付属するプロパティーの合成されたビューにある非永続的なプロパティーグループ内のプロパティーとの集合です。プロパティーの合成についての説明は、smf(5) を参照してください。「実行中の」スナップショットが存在しない場合、代わりにインスタンスに直接付属するプロパティーが使用されます。

出力形式

デフォルトでは、1 つのプロパティーを選択した場合には、それぞれの値が別の行に出力されます。空の ASCII 文字列は、二重引用符 (“”) で表現されます。ASCII 文字列の値に Bourne シェルのメタキャラクタ (「;」、「&」、「(」、「)」、「|」、「^」、「<」、「>」、改行、スペース、タブ、バックスラッシュ、「"」、単一引用符、「`」) が含まれる場合は、そのキャラクタの前にバックスラッシュ (\) が付きます。

複数のプロパティーを選択した場合は、各プロパティーが 1 行で出力されます。各行はプロパティー指示子、プロパティータイプ、および値で構成され、それぞれの間はスペース文字で区切られます。値は、前述の説明のとおりに出力されます。デフォルトでは、FMRI オペランドを 1 つだけ指定した場合のプロパティー指示子は、プロパティーグループ名、スラッシュ (/)、プロパティー名という構成になります。複数の FMRI オペランドを指定した場合のプロパティー指示子は、そのプロパティーの正規の FMRI になります。

アクセス制御によってプロパティー値の読み取りが禁止されていて、プロパティーまたはプロパティーグループが –p オプションによって明示的に指定されていない場合、プロパティーは値がない場合のように表示されます。プロパティーまたはプロパティーグループの名前が –p オプションによって 1 つ以上指定されていて、アクセス制御のためにプロパティー値が読み取れない場合は、エラーが発生します。

エラーメッセージが標準エラーストリームに出力されます。

オプション

サポートしているオプションは、次のとおりです。

–a

SMF テンプレート定義プロパティーグループのプロパティーを含む、すべてのプロパティーを表示します。

–C

直接付属するプロパティーを合成しないで使用します。

–c

サービスインスタンスの場合、直接付属するプロパティーの合成されたビューを使用します。

–f

完全な FMRI を指示子として、複数プロパティー出力形式を選択します。

–g pgtype

pgtype タイプのプロパティーグループに属する、選択されたプロパティーのみを表示します。複数の –g オプションが指定されると、複数のプロパティーグループタイプのプロパティーを表示します。このオプションは、複数プロパティー出力形式 (–t) を暗黙的に意味します。

–l layer[,...]

選択されたレイヤーで定義されたプロパティーのみを表示します。使用可能なレイヤーは、manifestsystem-profilesite-profile、および admin です。すべてのレイヤーの選択に別名 all を使用できます。このオプションを使用する場合、非持続性プロパティーグループに属するプロパティーは表示されません。

–p name

オペランドで指定されたそれぞれのサービスまたはサービスインスタンスについて、name プロパティーグループ内のすべてのプロパティーを選択します。オペランドで指定されたプロパティーグループについては、name プロパティーを選択します。–g と同時に使用する場合、一致するすべてのプロパティーグループタイプで name プロパティーを選択します。

–p pg/prop

オペランドによって指定されたそれぞれのサービスまたはサービスインスタンスについて、プロパティーグループ pg 内のプロパティー prop を選択します。

–q

非出力。出力を生成しません。

–s name

サービスインスタンスについて、name スナップショットの合成されたビューを使用します。

–t

複数のプロパティーを出力する形式を選択します。

–v

冗長。オプション -q が使用されている場合でも、存在しないプロパティーに関するエラーメッセージを出力します。

–w

指定されたプロパティーグループ、または指定されたプロパティーを含むプロパティーグループが変更されるまで待機してから、出力します。

このオプションは、指定されているエンティティーが 1 つの場合にのみ有効になります。複数のオペランドが指定されている場合、または 1 つのオペランドが複数のインスタンスに一致する場合は、エラーメッセージが出力され、処理は行われません。-C オプションの意味を含んでいます。

オペランド

次のオペランドがサポートされています。

FMRI

サービスの FMRI、サービスインスタンス、プロパティーグループ、またはプロパティー。

インスタンスおよびサービスは、インスタンス名、またはサービス名の最後の部分を指定する方法で、省略して入力することができます。プロパティーおよびプロパティーグループの場合は、完全な FMRI を指定する必要があります。たとえば、次の FMRI があるとします。

svc:/network/smtp:sendmail

次のような省略が有効です。

sendmail
:sendmail
smtp
smtp:sendmail
network/smtp

次のような省略は無効です。


mailnetwork
network/smt

FMRI の省略形は「不確実」なので、スクリプトやその他の長期に渡って使用するツールには使用しないでください。省略形が複数のインスタンスとマッチする場合、svcprop は各インスタンス上で動作します。

pattern

リポジトリ内のサービスおよびサービスインスタンスの FMRI に対して一致した glob パターン。fnmatch(5) を参照してください。パターンが複数のサービスまたはインスタンスとマッチする場合、svcprop は各サービスまたはインスタンス上で動作します。

使用例 1 1 つのプロパティーの値を表示する

次の例は、サービス system/cron のインスタンス default のリスタータプロパティーグループ内にある、状態プロパティーの値を表示します。

example%  svcprop -p restarter/state system/cron:default
online

使用例 2 サービスが有効かどうかの情報を取得する

サービスが有効かどうかは、その –general/enabled プロパティーによって決定されます。このプロパティーはすぐに影響するため、–c オプションを使用する必要があります。

example%  svcprop -c -p general/enabled system/cron:default
true

使用例 3 特定のプロパティーグループに含まれるすべてのプロパティーを表示する

Solaris のデフォルトのインストールでは、次の例は network/ntp サービスのそれぞれのインスタンスの general プロパティーグループ内にある、すべてのプロパティーを表示します。

example% svcprop -p general ntp
general/package astring SUNWntpr
general/enabled boolean true
general/entity_stability astring Uncommitted
general/single_instance boolean true

使用例 4 プロパティーが存在することをテストする

次の例では、identity サービスのすべてのインスタンスの general/enabled プロパティーが存在することをテストします。

example%  svcprop -q -p general/enabled identity:
example%  echo $?
0

使用例 5 プロパティーが変更されるのを待機する

次の例では、sendmail インスタンスの状態が変更されるのを待機します。


example%  svcprop -w -p restarter/state sendmail
使用例 6 スクリプトの Boolean プロパティーの値を取得する

次の例は、スクリプトの boolean プロパティーの値を取得します。

set -- `svcprop -c -t -p general/enabled service`
code=$?
if [ $code -ne 0 ]; then
        echo "svcprop failed with exit code $code"           
        return 1
fi
if [ $2 != boolean ]; then
         echo "general/enabled has unexpected type $2"
         return 2
fi
if [ $# -ne 3 ]; then
          echo "general/enabled has wrong number of values"
          return 3
fi
value=$3
...
使用例 7 svcprop をスクリプトで使用する

次の例では、サービスプロパティーの値を取得し、その値をスクリプト (/usr/bin/Xserver) 内で使用します。

fmri=$1
prop=$2
if svcprop -q -p ${prop} ${fmri} ; then
     propval="$(svcprop -p ${prop} "${fmri}")"
     if [[ "${propval}" == "\"\"" ]] ; then
        propval=""
     fi
fi
使用例 8 プロパティーグループタイプによる出力のフィルタ処理

次の例では、svc:/network/ssh:default のメソッドを取得します。

example% svcprop -p exec -g method svc:/network/ssh:default
start/exec astring /lib/svc/method/sshd\ start
stop/exec astring :kill
refresh/exec astring /lib/svc/method/sshd\ restart
unconfigure/exec astring /lib/svc/method/sshd\ -u
使用例 9 管理用にカスタマイズされたプロパティの表示

次のコマンドは、SMF レイヤーを使用して管理用にカスタマイズされたプロパティーを表示します。

example% svcprop -p config -l admin svc:/network/dns/client
config/domain       astring     admin        my.domain.com
config/nameserver   net_address admin        10.22.33.44  10.44.33.11

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

エラーが発生した。

2

無効なコマンド行オプションが指定された。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os

関連項目

svcs(1), inetd(1M), svcadm(1M), svccfg(1M), svc.startd(1M), service_bundle(4), attributes(5), fnmatch(5), smf(5), smf_method(5), smf_security(5)