Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

svccfg(8)

名前

svccfg - サービス構成のインポート、エクスポート、および変更

形式

/usr/sbin/svccfg [-v] [-s
 FMRI]
/usr/sbin/svccfg [-v] [-s
 FMRI] subcommand [
args]...
/usr/sbin/svccfg [-v] [-s
 FMRI] -f command-file

説明

svccfg コマンドは、サービス構成リポジトリ内のデータを操作します。svccfg は、個別のサブコマンドを使用するか、一連のサブコマンドが格納されているコマンドファイルを指定することで、対話形式で呼び出すことができます。

通常、リポジトリ内の既存のサービスに加えた変更は、次にサービスインスタンスがリフレッシュされるまでサービスに反映されません。詳細は、次の refresh サブコマンド、または svcadm(8) マニュアルページの refresh サブコマンドを参照してください。

オプション

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

–f command-file

svccfg サブコマンドを command-file から読み込んで実行します。

–s FMRI

サブコマンドを実行する前に、FMRI (障害管理リソース識別子) で指定されているエンティティーを選択します。–f command-file が指定されず、コマンド行にサブコマンドが一切指定されていない場合、マスクされたエンティティーは存在しないものとして扱われます。詳細は、smf(7) のマニュアルページを参照してください。

–v

冗長。

サブコマンド

サブコマンドは、あとに続くサブセクションに指定されたカテゴリに分けられます。

FMRI を受け入れるサブコマンドはすべて、省略形や展開パターンも受け入れます。インスタンスおよびサービスは、インスタンス名、またはサービス名の最後の部分を指定する方法で、省略して入力することができます。たとえば、次のような FMRI を仮定します。

svc:/network/smtp:sendmail

この場合、次に示す省略形はすべて有効です。

sendmail
:sendmail
smtp
smtp:sendmail
network/smtp

これに対し、次のものは無効です。

mail
network
network/smt

FMRI の省略形は不安定なので、スクリプトやその他の長期に渡って使用するツールには使用しないでください。パターンが複数のインスタンスまたはサービスに一致する場合は、エラーメッセージが表示され、アクションは行われません。

一般的なサブコマンド

end
exit
quit

すぐに終了します。

repository [–p prefix] repfile

repfile をリポジトリとして使用します。デフォルトでは、svccfg はシステムリポジトリを使用します。

repository サブコマンドは、システムで実行されている同じバージョンの Oracle Solaris (すべての SRU を含む) のファイルに対してのみ使用します。つまり、pkg(1) によって報告されるパッケージ「全体」のバージョンが完全に一致するようにしてください。このサブコマンドをシステムリポジトリ /etc/svc/repository.db とともに使用しないでください。

svccfg repository を使用して、配備時間の前に SMF リポジトリを事前に生成する場合は、–p オプションを使用して、svccfg import でインポートされたマニフェストのシステム標準の場所にルートプレフィックスを指定します。リポジトリを稼働中のシステムに配置すると、このプレフィックスは /lib/svc/manifest で置き換えられます。–p ディレクトリにあるマニフェストが実行時にシステム標準の場所に表示されない場合は、これに関連付けられたサービスが削除されます。

set [–v|–V]

オプション動作を設定します。オプションが何も指定されていない場合、set は現在有効になっているオプションを表示します。

–v

詳細表示モードを有効にします。

–V

詳細表示モードを無効にします。

サービスマニフェストおよびプロファイルのサブコマンド

apply [–n] file | directory

ファイルが標準の場所にあるサービスプロファイルまたはマニフェストであるか、ディレクトリが標準の場所である場合、その場所に対応する SMF リポジトリのレイヤーに構成を適用します。

同じプロファイルまたはマニフェストのレイヤー内にあるプロパティー値の間に競合が存在する場合、次のようなメッセージが表示され、構成は実行中のスナップショットに適用されません。

svccfg: svc:/service-name:instance-name: property group "pg-name" has a conflict.

ファイルが標準以外の場所にあるサービスプロファイルまたはマニフェストの場合は、構成を SMF リポジトリの admin レイヤーに適用します。

オペランドが directory の場合、そのディレクトリツリーの下にあるすべてのプロファイルが適用されます。

The command fails if a specified file, or any file with a .xml extension found under a specified directory, is not a service profile.

必要に応じて、サービス、インスタンス、プロパティーグループ、およびプロパティーが作成されます。

あるプロパティーまたはプロパティーグループのタイプ属性を指定しなかった場合、既存のタイプ設定やサービステンプレートからそのタイプを判定する試みが行われます。タイプの決定に失敗すると警告が発せられ、サービスやインスタンスに不整合なデータが導入されないようにそのサービスがスキップされます。存在しないサービスやインスタンスは無視されます。

プロファイル内で制限が緩和された要素定義を使用するには、DOCTYPE エントリに次の定義を追加する必要があります。

<!ENTITY % profile "INCLUDE">
<!ENTITY % manifest "IGNORE">

プロファイルによって変更されたサービスやインスタンスはリフレッシュされます。–n を指定した場合、プロファイルは処理されますが、変更は SMF リポジトリに適用されません。構文エラーが見つかると必ず標準エラー出力に報告され、終了コード 1 が返されます。サービスプロファイルについては、 smf(7) を参照してください。このコマンドでは、サービスやインスタンスのプロパティーを変更する特権が必要です。プロパティーを変更するために必要な特権については、 smf_security(7) を参照してください。

extract [–a] [–l layer] [fmri] [> file]

指定された FMRI のサービスプロファイルを表示します。FMRI を指定しない場合は、システム全体のサービスプロファイルを表示します。

–l を指定すると、値の抽出元であるレイヤーの一覧を選択できます。–l オプションではレイヤー名が必要であり、引数として manifest、system-profile 、enterprise-profile、site-profile、node-profile、sysconfig-profile、admin、current、all を指定します。current と all は同義語であり、最大レイヤーの値を選択します。複数のレイヤーを指定するには、コンマで区切るか、複数の –l オプションを使います。

–l が指定されていない場合、デフォルトは –l admin,sysconfig-profile,node-profile,site-profile,enterprise-profile です。

複数選択されたレイヤーでプロパティーが定義されている場合は、最上位レイヤーのみがプロファイルでエクスポートされます。

–a オプションを指定しないと、保護された情報 (read_authorization プロパティーの存在によって識別される。smf_security(7) を参照) を含むプロパティーグループがプロパティー値なしで抽出されます。–a オプションを指定すると、すべての値が抽出されます。これらの値を読み取るための特権が不十分である場合は、エラーが発生します。

FMRI を指定し、その FMRI がサービスである場合、プロファイルにはそのサービスとそのサービスのインスタンスのカスタマイズのみが含まれます。指定した FMRI がインスタンスである場合、プロファイルにはそのサービスと指定したインスタンスのカスタマイズが含まれます。

export [–a] service_FMRI [>file]

svccfg export からの出力は、svccfg extract コマンドの出力と似ています。違いは、export がマニフェストを生成するのに対して、extract は上で説明したようにプロファイルを生成する点です。

svccfg extract -l current [-a] service_FMRI [>file]
import [–V] [file | directory]

svccfg import on a file in a subdirectory of /lib/svc/manifest invokes: svcadm restart manifest-import.

マニフェストをインポートするには、システムで管理された場所にマニフェストを配置し、svcadm restart manifest-import を起動する方法をお勧めします。

その他の場所にあるファイルに svccfg import を配置すると、プロパティーが管理カスタマイズとして管理レイヤーにインポートされます。 これは、svccfg apply [file | directory] と同等です。

inventory file

file がサービスマニフェストまたはプロファイルであると判定された場合は、file で指定されているサービスおよびインスタンスの FMRI が出力されます。各サービスについて、そのインスタンスの FMRI に続いてサービスの FMRI が表示されます。

validate [file | fmri]

validate サブコマンドで処理できるのは、マニフェストファイル、インスタンス FMRI、現在のインスタンスエンティティー選択、現在のスナップショットエンティティー選択のいずれかです。引数が指定された場合、svccfg はその指定されたファイルが存在するかどうかをチェックします。ファイルが存在する場合は、ファイルが検証されます。指定された名前のファイルが存在しない場合、その引数は FMRI パターンとして処理されます。ファイル名と FMRI との間で競合が発生する場合には、svc: および file: 接頭辞を使用して引数の解釈方法を svccfg に知らせます。

ユーザーがファイルを指定した場合、そのファイルは import –V と同様の方法で処理されますが、リポジトリの変更は一切行われません。エラーが検出された場合、svccfg はエラーを表示し、ゼロ以外の終了ステータスで終了します。

インスタンス fmri、インスタンスエンティティー選択、スナップショットエンティティー選択のいずれかの場合、指定された合成形式のインスタンス (smf(7) の「プロパティーおよびプロパティーグループ」を参照) が、リポジトリ内のテンプレートデータに基づいて検証されます。インスタンス FMRI とインスタンスエンティティー選択の場合、「実行中の」スナップショットが検証に使用されます。テンプレート違反が検出されると必ず警告が発行されます。テンプレートの説明については、smf_template(7) を参照してください。

エンティティーの選択、変更、およびナビゲーションのサブコマンド

「エンティティー」とは、スコープ、サービス、またはサービスインスタンスを指します。

add name

現在の選択内容の子として、指定された名前で新しいエンティティーが作成されます。エンティティーを作成するために必要な特権については、smf_security(7) を参照してください。

delete [–f] { name | fmri}

name で指定されている現在の選択内容の子、または fmri で指定されているエンティティーが削除されます。–f フラグを指定しない限り、「online」状態または「degraded」状態のサービスインスタンスを削除しようとすると失敗します。サービスまたはサービスインスタンスが「framework」タイプの「dependents」プロパティーグループを持っている場合は、その中の「astring」タイプまたは「fmri」タイプの各プロパティーが調べられ、そのプロパティーがサービスまたはサービスインスタンスの名前を指定する 1 つの値を持っているときは、指定されたサービスまたはサービスインスタンスの、プロパティーと同じ名前を持つ dependency プロパティーグループが削除されます。サービス構成を削除するために必要な特権については、smf_security (7) を参照してください。

標準の場所にあるマニフェストに従ってサービスを識別する FMRI を指定して delete サブコマンドを呼び出すと、そのサービスの定義はマスクされるだけで削除されません。サービスを削除するには、そのマニフェストを削除してから、次のコマンドを使用して manifest-import サービスを再起動します。

# svcadm restart manifest-import

マニフェストを再インポートしてもマスクは削除されないことに注意してください。

Use the listcust subcommand with the –M option to list masked services.サービスのマスク解除の例については、「使用例」を参照してください。

Oracle Solaris のサービス管理機能の説明については、smf(7) を参照してください。

list [pattern]

現在の選択内容の子エンティティーのうち、 glob パターン pattern に一致する名前を持つものが表示されます (fnmatch(7) を参照)。 プロパティーを持つエンティティー、すなわちサービスおよびサービスインスタンスには、「:properties」も一覧表示されます。

refresh

現在の構成に含まれる値を実行中のスナップショットに確定し、現在選択されているインスタンスがそれらの値を使用できるようにします。repository サブコマンドを使用せずにリポジトリが選択された場合、更新された構成を読み直すように、インスタンスのリスタータに指示します。選択がサービスの場合、サービスのすべてのインスタンスがリフレッシュされます。

select {name | fmri}

引数で現在の選択内容の子が指定されている場合は、それが現在の選択内容になります。それ以外の場合、引数は FMRI であると解釈され、引数で指定されているエンティティーが現在の選択内容になります。

unselect

現在の選択内容の親が現在の選択内容になります。

プロパティーの検査および変更のサブコマンド

addpg name type [flags]

Adds a property group with the given name and type (where, a type of application for application data is recommended) to the current selection. flags is a string of characters which designates the flags with which to create the property group.「P」は SCF_PG_FLAG_NONPERSISTENT を表します (scf_service_add_pg(3SCF) を参照)。プロパティーグループを作成するために必要な特権については、smf_security(7) を参照してください。

–G オプションが指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります (smf(7))。複数の –G 引数を指定すると、入れ子になったプロパティーグループが作成されます。親プロパティーグループは常に存在する必要があり、プロパティーグループ階層のトラバースは –G オプションの出現順序で行われます。

addpropvalue –G pg [–G pg ...] –P name [–T type] value
addpropvalue pg/name [type:] value

指定された値をプロパティーに追加します。type が指定されている場合で、プロパティーが存在しているときは、そのプロパティーのタイプが type と一致しないと、このサブコマンドは失敗します。pg が存在しない場合、テンプレート定義に pg タイプとフラグを検出できれば、addpropvalue によって作成されます。選択がインスタンスの場合、addpropvalue は、テンプレート定義を検索する前に、サービスで pg タイプとフラグを検索します。pg タイプとフラグが見つからない場合、サブコマンドは失敗します。値は二重引用符で囲まれる場合があります。囲まれている場合、バックスラッシュの前の文字はすべて、追加の解釈または特殊な意味なしで通過します。空白、二重引用符、バックスラッシュを含んでいる文字列値は、二重引用符で囲む必要があります。また、文字列値に含まれている二重引用符とバックスラッシュは、バックスラッシュで囲む必要があります。非対話式で呼び出した場合、シェルの引用規則が、必要な二重引用符とバックスラッシュを消費しないようにする必要があります。存在しないプロパティーが作成されます。その場合は、type 指定子が存在している必要があります。使用可能なプロパティータイプのリストについては、smf(7) のマニュアルページを参照してください。プロパティーを変更するために必要な特権については、smf_security(7) を参照してください。新しい値は、プロパティーに関連付けられたプロパティー値のリストの末尾に追加されます。

–G オプションが指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P オプションが指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。詳細は、smf(7) のマニュアルページを参照してください。

–T オプションが指定されている場合、指定された引数はプロパティーのタイプとして使用されます。パターンは指定できません。

decode [–n] name

RFC 3986 ガイドラインに従って、指定された名前をデコードします。

–n オプションが指定されている場合、文字列の末尾の復帰改行は出力から省略されます。

delcust [–M] [–G pg [–G pg ...] [–P name]]
delcust [–M] [pattern]

現在選択されている管理カスタマイズを削除します。引数が指定されている場合、それは glob パターンと見なされ、引数に一致する名前を持つプロパティーグループおよびプロパティーだけが削除されます。

現在の選択がない場合は、変更は行われず、サブコマンドは失敗します。

–M が指定されている場合は、「マスクされた」エンティティーのみが削除されます。

delcust で削除されるカスタマイズを確認するには、listcust に同じオプションを付けて使用します。delcust を使うと、現在の選択に関するすべての管理カスタマイズが削除される可能性があるため、常に listcust を最初に実行して、意図どおりのものを削除しようとしていることを確認します。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P が指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。詳細は、smf(7) のマニュアルページを参照してください。

delpg –G name [–G name ...]
delpg name

現在の選択内容のプロパティーグループ name を削除します。プロパティーグループを削除するために必要な特権については、smf_security(7) を参照してください。

プロパティーグループがマニフェストまたはプロファイル内にある場合、そのプロパティーグループは非表示になります。smf(7) を参照してください。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

delprop –G pg [–G pg ...] [–P name]
delprop pg[/name]

現在の選択内容のプロパティーグループまたはプロパティーのうち、name で指定されているものを削除します。プロパティーを削除するために必要な特権については、smf_security (7) を参照してください。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P が指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。詳細は、smf(7) のマニュアルページを参照してください。

delpropvalue –G pg [–G pg ...] –P name globpattern
delpropvalue pg/name globpattern

指定されたプロパティー値のうち、globパターンに一致するものをすべて削除します。一致する値がなくても、成功します。プロパティーを変更するために必要な特権については、smf_security(7) のマニュアルページを参照してください。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P が指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。詳細は、smf(7) のマニュアルページを参照してください。

describe [–v] [–t] [–G propertygroup [–G propertygroup ...] [–P property]]
describe [–v] [–t] [propertygroup/property]

現在の設定、使用可能な設定のいずれかについて説明します。

describe を引数なしで呼び出した場合、現在選択されているエンティティーおよび現在設定されているすべてのプロパティーグループやプロパティーの基本的な説明 (使用可能な場合) が表示されます。プロパティーグループや特定のプロパティーのクエリーを行うには、プロパティーグループ名か、プロパティーグループ名とプロパティー名をスラッシュ (/) で区切ったものを、引数として指定します。

–v オプションを指定すると、現在の設定、制約、使用可能なその他の設定の選択肢の説明など、使用可能なすべての情報が提供されます。

–t オプションを指定した場合は、選択内容のテンプレートデータのみが表示され (smf_template(7) を参照)、プロパティーグループやプロパティーの現在の設定は表示されません。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P が指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。詳細は、smf(7) のマニュアルページを参照してください。

editprop [–a]

現在の選択しているプロパティーグループとプロパティーを再生成するためのコマンドのコメントが一時ファイルに書き込まれ、編集のために VISUAL 環境変数によって指定されたプログラムが起動されます。VISUAL が定義されていない場合、代わりに EDITOR が使用されます。両方の環境変数が定義されていない場合、デフォルトのエディタ vi(1) が使用されます。完了すると、一時ファイル内のコマンドが実行されます。プロパティーを作成、変更、または削除するために必要な特権については、smf_security (7)を参照してください。

デフォルトでは、editprop によって、フレームワーク、依存関係、テンプレート、ファイアウォール、通知パラメータ、可視性が非表示でテンプレートされたプロパティーなどの SMF インフラストラクチャープロパティーグループは表示されません。インスタンスを選択する場合、プロパティーの合成されたビューが一時ファイルに入れられます。–a オプションによって、SMF インフラストラクチャープロパティーグループ内のプロパティーおよび可視性が非表示のテンプレートされたプロパティーを含む、すべてのプロパティーが一時ファイルに入れられます。

encode [–n] name

RFC 3986 ガイドラインに従って、指定された名前をエンコードします。

–n が指定されている場合、文字列の末尾の復帰改行は出力から省略されます。

listpg [–G name ...]
listpg [pattern]

現在の選択内容のプロパティーグループの名前、タイプ、およびフラグを表示します。引数が指定されている場合、それは glob パターンと見なされ、引数に一致する名前を持つプロパティーグループだけが一覧表示されます。

対話モードでは、プロパティーグループの基本的な説明も提供されます。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

listprop [–l layer...] [–f | –o format] [–G pg [–G pg ...] [–P name]]
listprop [–l layer...] [–f | –o format ] [pattern]

現在の選択内容のプロパティーグループとプロパティーを一覧表示します。プロパティーグループの場合は、名前、タイプ、およびフラグが一覧表示されます。プロパティーの場合は、名前 (プロパティーグループ名とスラッシュ (/) が前に付加される)、タイプ、および値が一覧表示されます。使用可能なプロパティータイプのリストについては、smf(7) のマニュアルページを参照してください。引数が指定されている場合、それは glob パターンと見なされ、引数に一致する名前を持つプロパティーグループおよびプロパティーだけが一覧表示されます。

–l オプションを指定すると、値の定義元のレイヤーが出力されます。–l オプションにはレイヤーが必要であり、引数として manifest、system-profile、enterprise-profile、site-profile、node-profile、sysconfig-profile、admin、current、all を指定します。current は、–l なしの listprop と同じプロパティー値を、値が定義されたレイヤーとともに出力します。

–f と –o オプションを同時に指定することはできません。–f は、プロパティーが定義されたファイルが存在する場合にそのファイルを出力します。–o ではフィールドの選択が可能です。 選択可能なフィールドには、次のものがあります。

propname

プロパティー名

pgname

プロパティーグループ名

instname

インスタンス名

servicename

サービス名

layer

レイヤー

proptype

プロパティータイプ

value

プロパティー値

file

ソースファイル

masked

プロパティーグループまたはプロパティーが現在非表示であるかどうか

time

このプロパティーが最後に変更された時間

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P が指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。詳細は、smf(7) のマニュアルページを参照してください。


注 -  listprop の出力は、シェルスクリプトでの解析には適していません。このような場合は、代わりに svcprop を使用してください。
listcust [–L] [–M] [–G pg [–G pg...] [–P name]]
listcust [–L] [–M][pattern]

すべての管理レイヤーのカスタマイズと、現在の選択のマスクされたエンティティーを出力します。引数が指定されている場合、それは glob パターンと見なされ、その引数に一致する名前を持つプロパティーグループおよびプロパティーのみが一覧表示されます。

現在の選択がない場合は、すべてのサーバーのすべてのカスタマイズが一覧表示されます。

–M が指定されている場合は、非表示のエンティティーのみが出力されます。

–L が指定されている場合は、admin レイヤー内のものに加えて、enterprise-profile、site-profile、node-profile、sysconfig-profile の各レイヤー内のものを含め、すべてのローカル設定を表示します。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P が指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。詳細は、smf(7) のマニュアルページを参照してください。

setenv [–i | –s] [–m method_name] envvar value

method_name プロパティーグループのタイプが「method」の場合は、そのプロパティーグループの「environment」プロパティーを変更することにより、サービスまたはインスタンスのメソッドの環境変数を設定します。method_name が指定されていない場合で、–i オプションが使用されているときは、現在インスタンスが選択されていれば「method_context」プロパティーグループが使用されます。–s オプションが使用されている場合で、現在サービスが選択されているときは、その「method_context」プロパティーグループが使用されます。–s オプションが使用されている場合で、現在インスタンスが選択されているときは、その親の「method_context」プロパティーグループが使用されます。–i オプションと –s オプションのどちらも使用されていない場合は、現在選択されているエンティティー内で「start」プロパティーグループが検索されます。また、現在インスタンスが選択されている場合は、その親も検索されます。「inetd_start」プロパティーグループが見つからない場合は、同様の方法で検索されます。

プロパティーが見つかると、envvar= で始まる値がすべて削除され、値「 envvar=value」が追加されます。プロパティーを変更するために必要な特権については、 smf_security(7) を参照してください。

setprop –G pg [–G pg ...] –P name [–T type] [value]...
setprop pg/name = [[type:] value]
setprop pg/name = [type:] ([values ...])

現在の選択内容の pg プロパティーグループの name プロパティーを、タイプ type の指定された値に設定します。使用可能なプロパティータイプのリストについては、smf(7) のマニュアルページを参照してください。pg が存在しない場合、テンプレート定義に pg タイプとフラグが見つかれば、setprop はこれを作成します。選択がインスタンスである場合、setprop はテンプレート定義を検索する前に、サービスで pg タイプとフラグを検索します。pg タイプとフラグが見つからない場合、サブコマンドは失敗します。name で指定されたプロパティーが存在しない場合は、type が指定されていればプロパティーが作成されます。プロパティーがすでに存在している場合は、そのプロパティーに既存のtypeがtypeと一致しないと、このサブコマンドは失敗します。タイプも値も指定されていない場合、setprop は pg または name のすべての値を削除します。値は二重引用符で囲まれる場合があります。囲まれている場合、バックスラッシュの前の文字はすべて、追加の解釈または特殊な意味なしで通過します。空白、二重引用符、またはバックスラッシュが含まれている文字列値は二重引用符で囲む必要があり、含まれている二重引用符とバックスラッシュはバックスラッシュで囲む必要があります。非対話式で呼び出した場合、シェルの引用規則が、必要な二重引用符とバックスラッシュを消費しないようにする必要があります。複数の値は、指定された順番に格納されます。プロパティーを作成または変更するために必要な特権の詳細は、smf_security(7) のマニュアルページを参照してください。

–G が指定されている場合、指定された引数はプロパティーグループ名として使用されます。パターンは指定できません。–G オプションを使用せず、予約文字が使用されている場合は、プロパティーグループ名はエンコードされる必要があります。複数の –G オプションが出現する場合は、それらのオプションによってプロパティーグループ階層のトラバース方法が指定されます。

–P が指定されている場合、指定された引数はプロパティー名として使用されます。パターンは指定できません。–P オプションを使用しない場合、予約文字が使用されているプロパティー名はエンコードされる必要があります。

–T が指定されている場合、指定された引数はプロパティーのタイプとして使用されます。パターンは指定できません。

unsetenv [–i | –s] [–m method_name] envvar

method_name プロパティーグループのタイプが「method」の場合は、そのプロパティーグループの「environment」プロパティーを変更することにより、サービスまたはインスタンスのメソッドの環境変数を削除します。method_name が指定されていない場合で、–i オプションが使用されているときは、現在インスタンスが選択されていれば「method_context」プロパティーグループが使用されます。–s オプションが使用されている場合で、現在サービスが選択されているときは、その「method_context」プロパティーグループが使用されます。–s オプションが使用されている場合で、現在インスタンスが選択されているときは、その親の「method_context」プロパティーグループが使用されます。–i オプションと –s オプションのどちらも使用されていない場合は、現在選択されているエンティティー内で「start」プロパティーグループが検索されます。また、現在インスタンスが選択されている場合は、その親も検索されます。「inetd_start」プロパティーグループが見つからない場合は、同様の方法で検索されます。

プロパティーが見つかると、「envvar =」で始まる値がすべて削除されます。プロパティーを変更するために必要な特権については、 smf_security(7) を参照してください。

通知パラメータのサブコマンド

setnotify {[–g] tset | class} notification_parameters

ソフトウェアイベントや障害管理問題ライフサイクルイベントの通知パラメータを、SMF リポジトリに設定します。

–g

SMF 状態遷移に対するシステム全体の通知パラメータを設定するために使用されます。smf(7) を参照してください。これらの通知パラメータは、svccfg の現在の選択内容にかかわらず svc:/system/svc/global:default 内に設定されます。このサブコマンドは、変更対象のインスタンスをすべてリフレッシュします。

class

FMA イベントのクラスまたは別名のコンマ区切りリスト。smf(7) の「通知パラメータ」を参照してください。

tset

SMF 状態遷移のコンマ区切りリスト。smf(7) の「通知パラメータ」を参照してください。

notification_parameters

実装されている各通知メカニズムの URI 形式。SMTP の場合は次を使用します。

mailto:addr[?header1=
value1[&header2=value2]]

または

mailto:{[active]|inactive}

SNMP トラップの場合は次を使用します。

snmp:{[active]|inactive}

smtp-notify(8) で定義されているパラメータ msg_template は、mailto URI のヘッダー値として設定できます。例:

mailto:root@localhost?msg_template=<path to template file>

SNMP トラップは、/etc/net-snmp/snmp/snmpd.conf 内の trapsink 指令で定義されたホスト、または SNMP トラップ通知デーモンで指定されたホストに送られます。smtp-notify(8) を参照してください。

通知パラメータは、指定された class または tset に固有のものであり、事前に存在していた通知パラメータは上書きされます。active/inactive 形式は以前の通知パラメータを上書きしません。この形式では、指定された class または tset に対する通知メカニズムのオン/オフが切り替わるだけです。通知パラメータを設定すると、それらのパラメータが暗黙的にアクティブに設定されます。

listnotify [–g] [ tset] | class

指定された class または tset の既存の通知パラメータを表示します。–g オプションを指定すると、svc:/system/svc/global:default の通知パラメータが表示されます。tset が省略されている場合は、all が暗黙的に指定されます。

delnotify [–g] tset | class

指定された class または tset の既存の通知パラメータを削除します。–g オプションを指定すると、svc:/system/svc/global:default の通知パラメータが削除されます。

スナップショットのナビゲーションおよび選択のサブコマンド

listsnap

現在選択されているインスタンスで使用可能なスナップショットを表示します。

revert [snapshot]

現在選択されているインスタンスとそのサービスの管理カスタマイズを、指定されたスナップショットに記録されているプロパティーに戻します。引数が何も指定されていない場合は、現在選択されているスナップショットを使用し、成功時にそれを選択解除します。変更したプロパティー値は、svcadm(8) の refresh サブコマンドを使用してアクティブにできます。プロパティーを変更するために必要な特権については、smf_security(7) を参照してください。

selectsnap [name]

現在のスナップショットを、name で指定されたスナップショットに変更します。name が指定されていない場合は、現在選択されているスナップショットを選択解除します。スナップショットは読み取り専用です。

インスタンスのサブコマンド

refresh

現在の構成に含まれる値を実行中のスナップショットに確定し、現在選択されているインスタンスがそれらの値を使用できるようにします。repository サブコマンドを使用せずにリポジトリが選択された場合、更新された構成を読み直すように、インスタンスのリスタータに指示します。repository が使用された場合、スナップショットは自動的にリフレッシュされます。

例

使用例 1 サービス記述のインポート

次の例では、コマンド行で指定した XML マニフェストに含まれる seismic サービスのサービス説明をインポートします。

# svccfg import /lib/svc/manifest/site/seismic.xml

マニフェストは service_bundle(5) に指定されている形式に従う必要があります。

使用例 2 サービス説明のエクスポート

サービス説明をローカルシステムにエクスポートするには、次のように指定します。

# svccfg export dumpadm >/tmp/dump.xml
使用例 3 サービスインスタンスの削除

サービスインスタンスを削除するには、次のように指定します。

# svccfg delete network/inetd-upgrade:default
使用例 4 代替リポジトリに含まれるプロパティーの検査

代替リポジトリをロードしたあとでサービスのプロパティーの状態を調べるには、次に示す一連のコマンドを使用します。このようなコマンドを使用して、たとえば、特定のリポジトリのバックアップ内でサービスが有効になっていたかどうかを調べることができます。

# svccfg
svc:> repository /etc/svc/repository-boot
svc:> select telnet:default
svc:/network/telnet:default> listprop general/enabled
general/enabled  boolean  false
svc:/network/telnet:default> exit
使用例 5 デバッグの有効化

start メソッドの LD_PRELOAD を変更し、デバッグ機能が有効になっている libumem(3LIB) を使用できるようにするには、次のように指定します。

$ svccfg -s system/service setenv LD_PRELOAD libumem.so
$ svccfg -s system/service setenv UMEM_DEBUG default

使用例 6 describe サブコマンドの使用

次のコマンドは、describe サブコマンドの使用法を示しています。

# svccfg -s console-login describe ttymon
ttymon                      application
ttymon/device               astring  /dev/console
   terminal device to be used for the console login prompt
ttymon/label                astring  console
   appropriate entry from /etc/ttydefs
   ...

使用例 7 通知設定の構成

次のコマンドは、SMF サービス状態遷移イベントの通知パラメータを構成します。

# svccfg setnotify -g from-online,to-maintenance \
mailto:admin@example.com
使用例 8 SNMP 通知の有効化

次のコマンドは、障害管理イベントの SNMP 通知を有効にします。

# svccfg setnotify problem-diagnosed,problem-updated \
mailto:admin@example.com snmp:
使用例 9 通知設定の一覧表示

次のコマンドは、障害管理イベントの通知設定を一覧表示します。

# svccfg listnotify problem-diagnosed,problem-updated
Event: problem-diagnosed
  Notification Type: smtp
    active: true
   to: admin@example.com
  Notification Type: snmp
    active: true

Event: problem-updated
  Notification Type: smtp
    active: true
   to: admin@example.com
  Notification Type: snmp
    active: true
使用例 10 サービスのマスク解除

次の一連のコマンドでは、サービス mysvc の存在とその mysvc がマスクされていることを示し、最後にそのサービスをマスク解除します。

$ svcs -l mysvc
fmri         svc:/system/mysvc:default
name         Manifest to test snapshots
enabled      true
state        online
next_state   none
state_time   January 13, 2012 09:42:55 AM MST
logfile      /var/svc/log/system-mysvc:default.log
restarter    svc:/system/svc/restarter:default
manifest     /lib/svc/manifest/test/mysvc.xml
dependency   require_all/none svc:/system/filesystem/local (online)

[ Note manifest file in standard location. ]

# svccfg delete -f mysvc
$ svcs mysvc
svcs: Pattern 'mysvc' doesn't match any instances
STATE          STIME    FMRI

[ Not listed because service is masked. ]

$ svccfg listcust -M | grep mysvc
svc:/system/mysvc manifest MASKED
  manifestfiles/lib_svc_manifest_test_mysvc_xml astring     admin \
         MASKED /lib/svc/manifest/test/mysvc.xml
svc:/system/mysvc:default manifest MASKED

[ First line, above, shows that service is masked.  Masking is
  propagated down, so the instance is also masked as shown in
  the last line. ]

# svccfg -s svc:/system/mysvc delcust
 Deleting customizations for service: system/mysvc
$ svcs mysvc
STATE          STIME    FMRI
online          9:48:25 svc:/system/mysvc:default

[ Masking has been removed. ]
使用例 11 複数値プロパティーを設定する

次のコマンドは複数値プロパティーを設定します。

# svccfg -s svc:/stooges setprop foo/bar = astring: \
\(moe Curly Larry \)
使用例 12 setprop を使用してプロパティーからすべての値を消去する

次のコマンドは、setprop を使用してプロパティーからすべての値を消去します。

# svccfg -s svc:/stooges setprop foo/bar =
使用例 13 delpropvalue を使用してプロパティーからすべての値を消去する

次のコマンドは、delpropvalue を使用してプロパティーからすべての値を消去します。

# svccfg -s svc:/stooges delpropvalue foo/bar \*
使用例 14 空白が組み込まれたプロパティーを設定する

次のコマンドは、空白が埋め込まれた文字列である値を持つプロパティーを設定します。

# svccfg -s svc:inst setprop pg/prop = \
astring: "In spite of the spaces, this is one string."

プロパティーグループ名とプロパティー名を明確に指定することが望ましい場合は、同じコマンドを次のように記述できます。

# svccfg -s svc:inst setprop -G pg -P prop \
-T astring "In spite of the spaces, this is one string."
使用例 15 予約文字を使用してプロパティーグループを設定する

次のコマンドは、予約文字を含む文字列を名前として持つプロパティーグループを設定します。

# svccfg -s svc:inst setprop pg%20a/prop = astring: "foo"

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

# svccfg -s svc:inst setprop -G "pg a" -P prop -T astring "foo"
使用例 16 予約文字を使用して入れ子になったプロパティーグループを設定する

次のコマンドは、予約文字を含む文字列を名前として持ち、別のプロパティーグループ内に入れ子になっているプロパティーグループを設定します。

# svccfg -s svc:inst setprop pg%20a/pg%20b/prop = astring: "foo"

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

# svccfg -s svc:inst setprop -G "pg a" -G "pg b" -P prop -T astring "foo"

環境変数

EDITOR

editprop サブコマンドが使用されたときに実行するコマンド。デフォルトのエディタは vi(1) です。

終了ステータス

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

0

正常終了。

1

1 つまたは複数のサブコマンドが失敗しました。エラーメッセージが標準エラーストリームに書き込まれます。

2

無効なコマンド行オプションが指定された。この終了ステータスはサブコマンドには適用されません。

属性

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

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照。

対話型出力は「不確実」です。呼び出しおよび非対話型出力は「確実」です。

関連項目

svcprop(1)、svcs(1)、libscf(3LIB)、libumem(3LIB)、scf_service_add_pg(3SCF)、scf_value_create(3SCF)、contract(5)、service_bundle(5)、attributes(7)、fnmatch(7)、smf(7)、smf_method(7)、smf_security(7)、smf_template(7)、smtp-notify(8)、svc.configd(8)、svcadm(8)