JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
マニュアルページセクション 5: 標準、環境、マクロ     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

紹介

Standards, Environments, and Macros

acl(5)

ad(5)

advance(5)

adv_cap_1000fdx(5)

adv_cap_1000hdx(5)

adv_cap_100fdx(5)

adv_cap_100hdx(5)

adv_cap_10fdx(5)

adv_cap_10hdx(5)

adv_cap_asym_pause(5)

adv_cap_autoneg(5)

adv_cap_pause(5)

adv_rem_fault(5)

ANSI(5)

architecture(5)

ars(5)

ascii(5)

attributes(5)

audit_binfile(5)

audit_flags(5)

audit_remote(5)

audit_syslog(5)

availability(5)

brands(5)

C++(5)

C(5)

cancellation(5)

cap_1000fdx(5)

cap_1000hdx(5)

cap_100fdx(5)

cap_100hdx(5)

cap_10fdx(5)

cap_10hdx(5)

cap_asym_pause(5)

cap_autoneg(5)

cap_pause(5)

cap_rem_fault(5)

charmap(5)

compile(5)

condition(5)

crypt_bsdbf(5)

crypt_bsdmd5(5)

crypt_sha256(5)

crypt_sha512(5)

crypt_sunmd5(5)

crypt_unix(5)

CSI(5)

datasets(5)

device_clean(5)

dhcp(5)

dhcp_modules(5)

environ(5)

eqnchar(5)

extendedFILE(5)

extensions(5)

fedfs(5)

filesystem(5)

fmri(5)

fnmatch(5)

formats(5)

fsattr(5)

grub(5)

gss_auth_rules(5)

hal(5)

iconv_1250(5)

iconv_1251(5)

iconv(5)

iconv_646(5)

iconv_852(5)

iconv_8859-1(5)

iconv_8859-2(5)

iconv_8859-5(5)

iconv_dhn(5)

iconv_koi8-r(5)

iconv_mac_cyr(5)

iconv_maz(5)

iconv_pc_cyr(5)

iconv_unicode(5)

ieee802.11(5)

ieee802.3(5)

ipfilter(5)

ipkg(5)

isalist(5)

ISO(5)

kerberos(5)

krb5_auth_rules(5)

krb5envvar(5)

KSSL(5)

kssl(5)

labels(5)

largefile(5)

ldap(5)

lf64(5)

lfcompile(5)

lfcompile64(5)

link_duplex(5)

link_rx_pause(5)

link_tx_pause(5)

link_up(5)

locale(5)

locale_alias(5)

lp_cap_1000fdx(5)

lp_cap_1000hdx(5)

lp_cap_100fdx(5)

lp_cap_100hdx(5)

lp_cap_10fdx(5)

lp_cap_10hdx(5)

lp_cap_asym_pause(5)

lp_cap_autoneg(5)

lp_cap_pause(5)

lp_rem_fault(5)

man(5)

mansun(5)

me(5)

mech_spnego(5)

mm(5)

ms(5)

MT-Level(5)

mutex(5)

MWAC(5)

mwac(5)

nfssec(5)

NIS+(5)

NIS(5)

nis(5)

nwam(5)

openssl(5)

pam_allow(5)

pam_authtok_check(5)

pam_authtok_get(5)

pam_authtok_store(5)

pam_deny(5)

pam_dhkeys(5)

pam_dial_auth(5)

pam_krb5(5)

pam_krb5_migrate(5)

pam_ldap(5)

pam_list(5)

pam_passwd_auth(5)

pam_pkcs11(5)

pam_rhosts_auth(5)

pam_roles(5)

pam_sample(5)

pam_smbfs_login(5)

pam_smb_passwd(5)

pam_tsol_account(5)

pam_tty_tickets(5)

pam_unix_account(5)

pam_unix_auth(5)

pam_unix_cred(5)

pam_unix_session(5)

pam_user_policy(5)

pam_zfs_key(5)

pkcs11_kernel(5)

pkcs11_kms(5)

pkcs11_softtoken(5)

pkcs11_tpm(5)

pkg(5)

POSIX.1(5)

POSIX.2(5)

POSIX(5)

privileges(5)

prof(5)

pthreads(5)

RBAC(5)

rbac(5)

regex(5)

regexp(5)

resource_controls(5)

sgml(5)

smf(5)

smf_bootstrap(5)

smf_method(5)

smf_restarter(5)

smf_security(5)

smf_template(5)

solaris10(5)

solaris(5)

solbook(5)

stability(5)

standard(5)

standards(5)

step(5)

sticky(5)

suri(5)

SUS(5)

SUSv2(5)

SUSv3(5)

SVID3(5)

SVID(5)

tecla(5)

teclarc(5)

term(5)

threads(5)

trusted_extensions(5)

vgrindefs(5)

wbem(5)

xcvr_addr(5)

xcvr_id(5)

xcvr_inuse(5)

XNS4(5)

XNS(5)

XNS5(5)

XPG3(5)

XPG4(5)

XPG4v2(5)

XPG(5)

zones(5)

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

smf_template

- サービス管理フレームワークのサービスメタデータのサポート

機能説明

テンプレートはサービス開発者によって定義され、サービスに関するメタデータを記述します。サービスの全体的な構成プロパティーや個別の構成プロパティーに記述され、人間が読める形式の説明と、有効な構成の定義を含んでいます。

管理者は SMF コマンドを介してテンプレートにアクセスし、構成値を記述したり、テンプレートと照合して構成を検証したりできます。

ツール開発者はテンプレートを使用して、サービスの構成に役立つユーザーインタフェースを作成できます。

テンプレートデータ

サービスのメタデータは、テンプレートでサービスマニフェストの一部として定義されます。

テンプレートデータの使用

svcs -lv コマンドと svccfg describe コマンドを使用すると、人間が読める形式でプロパティーに関するメタデータにアクセスできます。

svccfg(1M)validate サブコマンドを使用すると、テンプレートデータと照合してサービスインスタンスやマニフェストを検証できます。テンプレートデータにアクセスするには、一連の libscf(3LIB) インタフェースを使用できます。

テンプレートの定義

テンプレートを定義するための唯一のインタフェースはサービスマニフェストです。

サービスの作成者は、サービス固有のプロパティーグループおよびそれらに導入されるプロパティーに、common_namesdescriptionschoicesconstraints などのテンプレートメタデータを指定するようにしてください。サービスの作成者は、少なくともプロパティーグループとプロパティーの説明を C ロケールで指定する必要があります。サービスの作成者は、メソッドや依存関係といったフレームワークによって提供されるプロパティーグループには、テンプレートメタデータを指定しないようにしてください。

サービスのテンプレート定義の作成例については、「使用例」のセクションを参照してください。

テンプレートの構成

すべてのテンプレートインタフェースは、プロパティーグループに関するテンプレートデータを、最初にインスタンスで、次にサービスで、3 番目にサービスのリスタータで、最後にグローバルに検索します。

プロパティーグループのテンプレートはその作成者によって定義され、特定のインスタンス、サービスとそのすべてのインスタンス、リスタータの委任、あるいはグローバルに適用されます。通常、サービスの作成者はインスタンスまたはサービスにテンプレートを定義します。インスタンスに定義されたテンプレートは、そのインスタンスだけに適用され、サービスに定義されているそのプロパティーグループのテンプレートよりも優先されます。サービスに定義されたテンプレートは、そのサービスのすべてのインスタンスに適用されます。

リスタータの作成者は、そのリスタータを使用するすべてのサービスに適用されるテンプレートをマニフェストで定義できます。これは「委任」とも呼ばれます。SMF フレームワークの作成者は、SMF フレームワーク全体に対する既知の意味を指定したプロパティーグループのテンプレートを svc:/system/svc/global のマニフェストに定義してあります。

グローバルにまたはリスタータによって定義されたテンプレートは、サービスまたはインスタンスで再定義されると、検証エラーとしてフラグが設定されます。サービスの作成者は、SMF フレームワークでは使用されない、そのサービスに固有のプロパティーグループだけにテンプレートを作成することで、このようなエラーを避けることができます。

プロパティーグループのテンプレートは、名前やタイプによるワイルドカード方式でも指定できます。プロパティーグループに適用可能なテンプレート定義のうち、もっとも限定的なものだけが適用されます。

テンプレートの詳細

サービスおよびインスタンスのテンプレート

template 要素は、template ブロックの開始を定義します。後述するほかの定義はすべて、template ブロックに含めることができます。template 要素は、service 要素または instance 要素に含めることができます。service 要素に含めた場合は、サービスおよびそのサービスのすべてのインスタンスに適用されます。instance 要素に含めた場合は、サービスのそのインスタンスだけに適用されます。

可能な場合は常に、サービス全体のテンプレートデータを定義することをお勧めします。

<service ... >
   <template>
   </template>
</service>
サービスおよびインスタンスの一般的な名前

サービス全体またはインスタンスには、そのサービスまたはインスタンスの目的を表す一般的な名前を定義できます。

<template>
  <common_name>
      <loctext xml:lang='C'>console login</loctext>
  </common_name>
<template>

common_name は自由形式の文字列ですが、GUI または CLI でラベルとして使用されます。

一般的な名前を定義するときは、次のガイドラインに従ってください。

サービスおよびインスタンスの説明

description 要素には、ステータス行やツールヒントに適した、プロパティーグループに関する長い説明が記述されます。

<template>
  <description>
     <loctext xml:lang='C'>Provide the text login prompt on console.
     </loctext>
  </description>
<template>

description のガイドライン

ドキュメント

このサービスのドキュメントを明示的に定義することにより、サービスで問題が発生した場合やサービスの利用者が詳細な情報を必要としている場合に、ドキュメントを簡単に見つけることができます。

プロパティーグループ

pg_pattern 要素には、プロパティーグループの定義が記述されます。

<template>
  <pg_pattern name="pgname" type="pgtype" target="this" required="true">
  </pg_pattern>
</template>

name はプロパティーグループの名前、type はプロパティーグループのタイプです。

target は、この定義の対象を指定します。"this" と指定すると、これを定義しているサービスまたはインスタンスを指します。"instance" は、サービスの template ブロックでのみ使用でき、定義がこのサービスのすべてのインスタンスに適用されることを意味します。 "delegate" は、リスタータの template ブロックでのみ使用でき、そのリスタータに委任されたすべてのインスタンスに適用されることを意味します。"all" は、マスターリスタータでのみ使用でき、システム上のすべてのサービスを指します。target のデフォルト値は "this" です。

required は、このプロパティーグループが必須かどうかを示します。required のデフォルト値は false です。requiredtrue の場合は、name type の両方を指定する必要があります。

nametype は、一方または両方を省略できます。これらの属性のいずれかが省略されている場合、その属性はワイルドカードとして扱われます。たとえば、pg_pattern 定義で name 属性が省略されている場合、pg_pattern は指定されたタイプのすべてのプロパティーグループに適用されます。

プロパティーグループの名前

common_name 要素には、人間が読めるローカライズされた形式で、プロパティーグループの名前が記述されます。

<pg_pattern ...>
  <common_name>
    <loctext xml:lang='C'>start method</loctext>
  </common_name>
</pg_pattern>

common_name は自由形式の文字列ですが、GUI または CLI でラベルとして使用されます。

前述の「サービスおよびインスタンスの一般的な名前」に示されている common_name に関するガイドラインを参照してください。

プロパティーグループの説明

description 要素には、ステータス行やツールヒントに適した、プロパティーグループに関する長い説明が記述されます。

<pg_pattern ...>
  <description>
    <loctext xml:lang='C'>A required method which starts the service.
   </loctext>
   </description>
</pg_pattern>

前述の「サービスおよびインスタンスの説明」に示されている description の指定方法に関するガイドラインを参照してください。

プロパティー

prop_pattern 要素には、特定のプロパティーの定義が記述されます。

<pg_pattern ...>
  <prop_pattern name="propname" type="proptype" required="true">
  </prop_pattern>
</pg_pattern>

name はプロパティーの名前、type はプロパティーのタイプです。

required は、このプロパティーが必須かどうかを示します。required のデフォルト値は false です。

name は常に必須です。requiredfalse の場合のみ、type は省略可能です。

プロパティーの名前

common_name 要素には、人間が読めるローカライズされた形式で、プロパティーの名前が記述されます。

common_name は自由形式の文字列フィールドですが、GUI または CLI でラベルとして使用されます。

<prop_pattern ...>
<common_name>
  <loctext xml:lang='C'>retry interval</loctext>
</common_name>
</prop_pattern>

前述の「サービスおよびインスタンスの一般的な名前」に示されている common_name に関するガイドラインを参照してください。

プロパティーの単位

units 要素には、人間が読めるローカライズされた形式で、数値プロパティーの単位が記述されます。

<prop_pattern ...>
  <units>
    <loctext xml:lang='C'>seconds</loctext>
  </units>
</prop_pattern>

units のガイドライン

プロパティーの説明

description 要素には、ステータス行やツールヒントに適した、プロパティーに関する長い説明が記述されます。

<prop_pattern ...>
   <description> <loctext xml:lang='C'>
    The number of seconds to wait before retry.
    </loctext> </description>
</prop_pattern>

前述の「サービスおよびインスタンスの説明」に示されている description の指定方法に関するガイドラインを参照してください。

プロパティーの可視設定

visibility 要素は、より上位のソフトウェアの簡易表示でこのプロパティーを表示するかどうかを指定します。

<prop_pattern ...>
  <visibility value="hidden | readonly | readwrite"/>
</prop_pattern>

一部のプロパティーは、内部の実装の詳細であり、構成の設定として表示されるべきではありません。単に読み取り専用のものもあります。このプロパティーは、このような制約を指定するために使用されます。値 hidden は、そのプロパティーを表示しないことを示します。readonly は、そのプロパティーを変更できないことを意味します。readwrite は、そのプロパティーが変更可能であることを示します。

これはセキュリティーメカニズムでなく、単にユーザー自身の誤りを防ぎ、CLI の出力や GUI の表示から不要な情報を取り除くためのものです。非表示のプロパティーは、多くのコマンドおよび UI の完全開示モードで表示されます。

プロパティーの形式

cardinality 要素と internal_separators 要素には、プロパティーの構造が記述されます。

<prop_pattern ...>
  <cardinality min="1" max="1"/>
  <internal_separators>,</internal_separators>
</prop_pattern>

cardinality は、指定できるプロパティー値の数を示します。min は最小数、max は最大数です。どちらも省略可能です。どちらも指定されていない場合、<cardinality/> はデフォルトと同じ、0 個以上の値になります。

internal_separators は、実際の値を複数保持するプロパティー値に使用する区切り文字を指定します。

値の制約

constraints 要素は、プロパティーに使用できる値を指定します。

<prop_pattern ...>
<constraints>
       <value name="blue" />
       <range min="1" max="7"/>
       <include_values type="values"/>
</constraints>
</prop_pattern>

value 要素には、プロパティーの取り得る値が記述されます。range には、整数の範囲が記述されます。

valuerange は、使用を制限すると有効な説明の多くが使用できなくなるため、任意の組み合わせで使用できます。値の制約が指定されていない場合、そのプロパティーは任意の値を取ることができます。

include_values には、values ブロックで指定されたすべての値が記述されます (「値の説明」のセクションを参照)。

値の選択肢

choices ブロックは、UI でユーザーに提供する値を示します。

<prop_pattern ...>
<choices>
      <range min="1" max="3"/>
      <value name="vt100" />
      <value name="xterm" />
      <include_values type="constraints"/>
      <include_values type="values"/>
</choices>
</prop_pattern>

constraints と同様に、rangevalue には範囲と個々の値が記述されます。

include_values には、constraints ブロックまたは values ブロックで指定されたすべての値が記述されます (次のセクションを参照)。

値の説明

プロパティー名と同様に、プロパティーが取る値にも、わかりにくい表現のものが存在します。values 要素には、人間が読めるローカライズされた形式で、特定のプロパティー値の説明が記述されます。

<prop_pattern>
<values>
      <value name="blue">
              <common_name>
                      <loctext xml:lang='C'>blue</loctext>
              </common_name>
              <description>
                      <loctext xml:lang='C>
                              The color between green and indigo.
                      </loctext>
              </description>
      </value>
</values>
</prop_pattern>

common_name は自由形式の文字列フィールドですが、GUI または CLI でラベルとして使用されます。

前述の「サービスおよびインスタンスの一般的な名前」に示されている common_name に関するガイドラインを参照してください。

使用例

次のような基本的なサービスがあり、その基本的なテンプレートデータを定義する場合を考えます。

<?xml version="1.0"?
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type='manifest' name='FOOfoo:foo'>
<service name='system/foo' type='service' version='1'>
      <dependency>
              name='multi-user'
              type='service'
              grouping='require_all'
              restart_on='none'
              <service_fmri value='svc:/milestone/multi-user' />
      </dependency>
      <exec_method
              type='method'
              name='start'
              exec='/opt/foo/food'
              timeout_seconds='60'>
      </exec_method>
      <exec_method
              type='method'
              name='stop'
              exec=':kill'
              timeout_seconds='60'>
      </exec_method>
      <property_group name='config' type='application'>
              <propval name='local_only' type='boolean' value='false' />
              <propval name='config_file' type='astring'
                  value='/opt/foo/foo.conf' />
      <property name='modules' type='astring'>
         <astring_list>
               <value_node value='bar'/>
               <value_node value='baz'/>
         </astring_list>
        </property>
      </property_group>

      <instance name='default' enabled='false' />
</service>
</service_bundle>

このサービスを使用する管理者に役立つように、基本的なテンプレートデータを <service> タグの内側に定義できます。もっとも役立つのは、サービス自体の目的と、サービス固有の構成を記述することです。

<template>
       <common_name> <loctext xml:lang='C'>
           all-purpose demonstration
       </loctext> </common_name>
       <documentation>
                <manpage title='food' section='1M'
                         manpath='/opt/foo/man' />
       </documentation>

       <pg_pattern name='config' type='application' target='this'
           required='true'>
               <description> <loctext xml:lang='C'>
                   Basic configuration for foo.
                </loctext> </description>
                <prop_pattern name='local_only' type='boolean'
                    required='false'>
                       <description> <loctext xml:lang='C'>
                           Only listen to local connection requests.
                       </loctext> </description>
                </prop_pattern>
                <prop_pattern name='config_file' type='astring'
                     required='true'>
                        <cardinality min='1' max='1'/>
                        <description> <loctext xml:lang='C'>
                             Configuration file for foo.
                         </loctext> </description>
                 </prop_pattern>
                 <prop_pattern name='modules' type='astring'
                     required='false'>
                         <description> <loctext xml:lang='C'>
                             Plugin modules for foo.
                          </loctext> /description>
                          <values>
                                   <value name='bar'>
                                   <description> <loctext xml:lang='C'>
                                       Allow foo to access the bar.
                                    </loctext> </description>
                                    </value>
                                    <value name='baz'>
                                    <description> <loctext xml:lang='C'>
                                       Allow foo to access baz functions.
                                    </loctext> </description>
                                    </value>
                                    <value name='qux'>
                                    <description> <loctext xml:lang='C'>
                                       Allow foo to access qux functions.
                                     </loctext> </description>
                                     </value>
                         </values>
                         <choices>
                             <include_values type='values'/>
                         </choices>
                  <prop_pattern>
        </pg_pattern>
</template>

ファイル

/usr/share/lib/xml/dtd/service_bundle.dtd.1

関連項目

svcs(1), svccfg(1M), libscf(3LIB), service_bundle(4), smf(5)

/usr/apache2/2.2/man

http://httpd.apache.org