ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11.1 Information Library (日本語) |
- サービス設定プロパティーの値の取得
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 つ以上指定されていて、アクセス制御のためにプロパティー値が読み取れない場合は、エラーが発生します。
エラーメッセージが標準エラーストリームに出力されます。
サポートしているオプションは、次のとおりです。
SMF テンプレート定義プロパティーグループのプロパティーを含む、すべてのプロパティーを表示します。
直接付属するプロパティーを合成しないで使用します。
サービスインスタンスの場合、直接付属するプロパティーの合成されたビューを使用します。
完全な FMRI を指示子として、複数プロパティー出力形式を選択します。
pgtype タイプのプロパティーグループに属する、選択されたプロパティーのみを表示します。複数の -g オプションが指定されると、複数のプロパティーグループタイプのプロパティーを表示します。このオプションは、複数プロパティー出力形式 (-t) を暗黙的に意味します。
選択されたレイヤーで定義されたプロパティーのみを表示します。使用可能なレイヤーは、manifest、system-profile、site-profile、および admin です。すべてのレイヤーの選択に別名 all を使用できます。このオプションを使用する場合、非持続性プロパティーグループに属するプロパティーは表示されません。
オペランドで指定されたそれぞれのサービスまたはサービスインスタンスについて、name プロパティーグループ内のすべてのプロパティーを選択します。オペランドで指定されたプロパティーグループについては、name プロパティーを選択します。-g と同時に使用する場合、一致するすべてのプロパティーグループタイプで name プロパティーを選択します。
オペランドによって指定されたそれぞれのサービスまたはサービスインスタンスについて、プロパティーグループ pg 内のプロパティー prop を選択します。
非出力。出力を生成しません。
サービスインスタンスについて、name スナップショットの合成されたビューを使用します。
複数のプロパティーを出力する形式を選択します。
冗長。オプション -q が使用されている場合でも、存在しないプロパティーに関するエラーメッセージを出力します。
指定されたプロパティーグループ、または指定されたプロパティーを含むプロパティーグループが変更されるまで待機してから、出力します。
このオプションは、指定されているエンティティーが 1 つの場合にのみ有効になります。複数のオペランドが指定されている場合、または 1 つのオペランドが複数のインスタンスに一致する場合は、エラーメッセージが出力され、処理は行われません。-C オプションの意味を含んでいます。
次のオペランドがサポートされています。
サービスの FMRI、サービスインスタンス、プロパティーグループ、またはプロパティー。
インスタンスおよびサービスは、インスタンス名、またはサービス名の最後の部分を指定する方法で、省略して入力することができます。プロパティーおよびプロパティーグループの場合は、完全な FMRI を指定する必要があります。たとえば、次の FMRI があるとします。
svc:/network/smtp:sendmail
次のような省略が有効です。
sendmail :sendmail smtp smtp:sendmail network/smtp
次のような省略は無効です。
mailnetwork network/smt
FMRI の省略形は「不確実」なので、スクリプトやその他の長期に渡って使用するツールには使用しないでください。省略形が複数のインスタンスとマッチする場合、svcprop は各インスタンス上で動作します。
リポジトリ内のサービスおよびサービスインスタンスの 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
次の終了ステータスが返されます。
正常終了。
エラーが発生した。
無効なコマンド行オプションが指定された。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
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)