Go to main content

マニュアルページ セクション 7: 標準、環境、マクロ、文字セット、その他

印刷ビューの終了

更新: 2018年8月8日
 
 

smf_bootstrap(7)

名前

smf_bootstrap - サービス管理機能のブート、パッケージ化、および互換性の動作

説明

サービス管理機能は、サービスマニフェストの配信、サービスマニフェストの変更の組み込み、サービス構成の安定性の記述、サービス構成の優先指定の使用、およびサービスプロファイルの使用に関する規約を定めます。

ブート時のマニフェストの読み込み

システムのブート時と、管理者またはプログラムが実行するときは常に、標準のディレクトリツリー /lib/svc/manifest および /var/svc/manifest からのマニフェストが処理されます。


$ svcadm restart manifest-import

以前インポートされなかったか、最後にインポートされてから変更されたマニフェストが処理されます。マニフェストが変更されたかどうかを判断するためにハッシュが使用されます。

標準の場所にあるマニフェストがはじめてインポートされると、マニフェストのプロパティー、インスタンス、およびサービスが、manifest レイヤーの一部としてリポジトリに追加されます。

標準の場所にあるマニフェストは、更新されると自動的にインポートされます。新しいサービスおよびインスタンスは追加され、変更されたプロパティーはアップグレードされ、削除されたサービス、インスタンス、およびプロパティーは削除されます。

マニフェストはブート中に 2 つの段階で処理されます。

サービス svc:/system/early-manifest-import:default は、最初のマニフェスト処理を担当する擬似サービスです。このサービスは、svc.startd(8) がすべてのサービスを初期化する前に、/lib/svc/manifest ディレクトリツリーのマニフェストのみを処理します。それにより、/lib/svc/manifest で配信されたサービスは、常にその最新の定義で起動できるようになります。このは擬似サービスであるため、svcadm(8) コマンドは無視されますが、svcs(1) を使用してステータスを監視したり、ログファイル情報を取得したりすることはできます。

svc:/system/manifest-import:default サービスは 2 番目のマニフェスト処理を担当し、まず /lib/svc/manifest、次に /var/svc/manifest の順に、これら両方のディレクトリツリーからマニフェストファイルをインポートします。

/var/svc/manifest のサポートは、system/early-manifest-import:default の導入より前にそのディレクトリツリーで配信されていたマニフェストに対する互換性サポートです。/var/svc/manifest で配信されているサービスには、アップグレード関連の問題が発生する可能性があります。つまり、更新されたマニフェストがまだインポートされていないために、サービスが古いリポジトリ構成で起動する可能性があります。同様に、マニフェストファイルがまだ処理されていないために、新たに追加されたサービスが使用できなくなったり、削除されたサービスがブート中に起動したりすることもあります。このような問題を避けるために、開発者にはマニフェストを /lib/svc/manifest に移動することを強くお勧めします。

このセクションで説明している操作では、*.xml ファイルのみが考慮されます。

プロファイルの適用

プロファイルは early-manifest-import サービスおよび manifest-import サービスによっても適用されます。

ファイル /etc/svc/profile/generic.xml およびディレクトリ /etc/svc/profile/system 内のシステム配信プロファイルは、system-profile レイヤーにインポートされます。

/etc/svc/profile/enterprise/etc/svc/profile/site/etc/svc/profile/node、および /etc/svc/profile/sysconfig ディレクトリ内の顧客固有のプロファイルは、enterprise-profilesite-profilenode-profile、および sysconfig-profile レイヤーにインポートされます。旧バージョンのサイトファイル /etc/svc/profile/site.xml は、node-profile レイヤーにインポートされます。

管理者は次を実行することによって、これらのプロファイルが再適用されることを要求できます。

$ svcadm restart manifest-import

プロファイルによって定義されるプロパティー、インスタンス、およびサービスの動作は、マニフェストによって定義される動作と同じです。

このセクションで説明している操作では、*.xml ファイルのみが考慮されます。

パッケージ化操作中のマニフェストの処理

パッケージ内のサービスマニフェストは、クラス manifest によって識別されます。サービスマニフェストのインストールと削除を行うクラスアクションスクリプトは、パッケージ化サブシステムに含まれています。pkg install が呼び出されると、サービスマニフェストがインポートされます。

pkg uninstall が呼び出されると、無効になっているマニフェスト内のインスタンスが削除されます。マニフェスト内のインスタンスで、オンライン状態または機能低下状態になっているものは、まず無効化され、そのあとで削除されます。また、インスタンスが残っていないマニフェスト内のサービスもすべて削除されます。

安定性の宣言

マニフェストで配信する各サービスグループおよび各プロパティーグループには、attributes(7) の定義に基づく安定性レベルを宣言するようにしてください。アプリケーション開発者は、サービスやオブジェクトの存在またはそのコンポーネントを基に機能を開発する場合に、安定性レベルがわかっていれば、リリースが変わっても動作するかどうかを判断しやすくなります。

smf(7) のコンテキストでは、安定性の値は、そのサービスのリリースが変わるときに想定される、プロパティーグループ内のプロパティーに対する変更の範囲も示します。これにはそのサービスのパッチも含まれます。次の 2 つのセクションでは、これについて詳細に説明します。

プロパティーグループの削除

service_bundle(5) ドキュメント型定義には、サービスマニフェスト内の各プロパティーグループに適用できる delete 属性があります。true に設定されている場合、delete 属性は svccfg(8) やその他のマニフェストインポートツールに、このプロパティーグループをリポジトリから削除するよう指示します。delete 属性が存在しないか false に設定されている場合、そのプロパティーグループはリポジトリに保持されます。

「安定」または「開発中」と宣言されているプロパティーグループは削除されません。「不安定」と宣言されているプロパティーグループは、リリースが変わるときに削除される可能性があります。

関連項目

svcs(1), libscf(3LIB), service_bundle(5), attributes(7), smf(7), smf_security(7), svc.startd(8), svcadm(8), svccfg(8)

smf(7) の現在のバージョンでは、複数のリポジトリはサポートされていません。