Go to main content

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

印刷ビューの終了

更新: 2022年7月27日
 
 

svcprop(1)

名前

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

形式

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

説明

svcprop ユーティリティーは、サービス構成リポジトリにあるプロパティーの値を出力します。プロパティーの選択は、 –p オプションとオペランドで行います。テンプレートのプロパティーグループタイプは、templatetemplate_pg_pattern、および template_prop_pattern のいずれかです。

The default behavior of svcprop without the –C, –c, or –s options is to access effective properties.

The effective properties of a service consists of all the properties that are set on the service.

The effective properties of a service instance includes properties in the composed view of its running snapshot(see smf(7) for an explanation of property composition and snapshot states).A composed view of all the properties in the non-persistent property groups of the service instance are also included in the effective properties despite them not being part of the running snapshot.「実行中の」スナップショットが存在しない場合、代わりにインスタンスに直接付属するプロパティーが使用されます。A directly attached property is an uncommitted property whch has been set on the instance or on the parent service but the instance has not been refreshed.

If the FMRI specifies a property, composition is not used to determine the effective property as it is fully specified by the FMRI.

Output Format

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

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

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

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

オプション

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

–a

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

–C

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

–c

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

–f

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

–G pg [–G pg ...]

オペランドで指定されたそれぞれのサービスまたはサービスインスタンスについて、pg プロパティーグループ内のすべてのプロパティーを選択します。–g オプションと同時に使用する場合、一致するすべてのプロパティーグループタイプに pg プロパティーを選択します。指定された pg がパターンでない可能性があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–G pg [–G pg ...] –P prop

オペランドによって指定されたそれぞれのサービスまたはサービスインスタンスについて、プロパティーグループ pg 内のプロパティー prop を選択します。指定された pgprop もパターンでない可能性があります。複数の –G オプションが表示された場合、オプションはプロパティーグループ階層を移動する方法を示します。

–g pgtype

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

–l layer[,...]

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

–p name

オペランドで指定されたそれぞれのサービスまたはサービスインスタンスについて、name プロパティーグループ内のすべてのプロパティーを選択します。オペランドで指定されたプロパティーグループについては、name プロパティーを選択します。–g と同時に使用する場合、一致するすべてのプロパティーグループタイプで name プロパティーを選択します。プロパティーグループ名、およびプロパティー name (指定時) は、予約文字が使用されている場合にはエンコードする必要があります。詳細は、smf(7) のマニュアルページを参照してください。

–p pg/prop

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

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

–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 パターン。See fnmatch(7).パターンがあるサービス名に正確に一致する場合、svcprop はそのサービス上で動作します。パターンが複数のサービスまたはインスタンスとマッチする場合、svcprop は各サービスまたはインスタンス上で動作します。

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

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

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

使用例 2 Determine if a Service is Enabled

Inspect the general/enabled property to determine if the service is enabled.This property takes immediate effect, so the -c option must be used as some properties may be inherited:

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

See smf(7) for a description of composition.

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

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

example% svcprop -p general ntp
general/enabled boolean true
general/action_authorization astring solaris.smf.manage.ntp
general/entity_stability astring Uncommitted
general/single_instance boolean true
general/value_authorization astring solaris.smf.value.ntp

使用例 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

使用例 10 予約文字での単一のプロパティー値の表示

次の例は、サービス svc のインスタンス instconfig プロパティーグループ内にある、current state プロパティーの値を表示します。

example% svcprop -p config/current%20state svc:inst
starting

プロパティー名を明確に指定する場合、–G および –P オプションを使用してエンコードせずに同じコマンドを記述できます。

example% svcprop -G config -P "current state" svc:inst
starting
使用例 11 入れ子にされたプロパティーグループのすべてのプロパティーの表示

pga というプロパティーグループ内にネストされている pgb という名前のプロパティーグループがある demo という名前のサービスの場合、次の例では、デフォルトのインスタンスの pgb プロパティーグループ内のすべてのプロパティーが表示されます。

example% svcprop -p pga/pgb demo
pga/pgb/property astring 123

プロパティーグループ名を明確に指定すると、–G オプションを使用して同じコマンドを書き込めます。

example% svcprop -G pga -G pgb demo
pga/pgb/property astring 123

終了ステータス

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

0

正常終了。

1

エラーが発生しました。

2

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

属性

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

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

関連項目

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