目標サービスは、特定の機能を実現するために実行する必要のあるサービスのセットを定義します。この重要なセット内のサービスは、目標サービスの依存関係として指定されます。
目標サービスの依存関係を設定するには、次のいずれかの方法を使用します。
svcadm goals コマンドを使用します。
プロファイルファイルを変更します。
目標サービスの依存関係セットに推奨されるサービスのタイプについては、Oracle Solaris 12 でのシステムサービスの開発 の 第 7 章, Creating a Service that Notifies if Conditions are not Satisfiedを参照してください。
svcadm goals コマンドは、目標サービスが依存するサービスのリストを取ります。目標サービスの依存関係のセットが、svcadm goals コマンドのオペランドとして指定されるサービスのセットになります。依存関係を追加するには、新しい依存関係だけでなく、現在のすべての依存関係をリストする必要があります。
svcadm goals コマンドのオペランドとして指定されるサービスは目標サービスの管理カスタマイズ、または admin レイヤーの変更です。レイヤーの詳細は、リポジトリレイヤーを参照してください。svcadm goals コマンドは、目標サービスの依存関係セットに対するすべての管理カスタマイズをリセットします。
svcadm goals コマンドを使用して設定された依存関係は require_all 依存関係グループ内にあり、restart_on 属性の値は restart です。詳細は、依存関係のグループおよび サービスが自動的に再起動するかどうかの表示を参照してください。目標サービスの依存関係が別のグループまたは別の restart_on 設定になるようにする場合は、svccfg コマンドを使用してその依存関係の属性を変更します。たとえば、目標サービスの依存関係として動的に有効になるサービスを含める必要がある場合は、svccfg コマンドを使用して、その依存関係の grouping 属性の値を optional_all に変更します。
使用例 19 目標サービスの依存関係セットのリセット次のコマンドは、milestone/goals 目標サービスの依存関係セットを、指定された database/oracle、database/listener、および milestone/multi-user-server サービスに置き換えます。milestone/multi-user-server サービスは、manifest レイヤーで指定されるデフォルトの目標です。svcadm goals コマンドに multi-user-server を含めない場合、multi-user-server はマスクされ、目標として使用されません。svcadm goals コマンドは、現在設定されているすべての目標を置き換えます。デフォルトでは、svcadm goals コマンドは milestone/goals サービスに対して動作します。milestone/goals サービスではない目標サービスの依存関係セットを置き換えるには、-g オプションを使用して目標サービスを指定します。
$ svcadm goals site/application/database/oracle:default \ > site/application/database/listener:default \ > svc:/milestone/multi-user-server:default
次のどちらのコマンドも、milestone/goals サービスには現在 3 つの目標の依存関係があることを示します。
$ svcprop -p goals-dependencies/entities milestone/goals $ svcs -d milestone/goals
次のどちらのコマンドも、目標サービスの依存関係セットのリセットが管理カスタマイズであることを示します。カスタマイズの詳細は、構成カスタマイズの表示を参照してください。
$ svccfg -s milestone/goals listcust $ svccfg -s milestone/goals listprop -l all goals-dependencies/entities使用例 20 目標サービスからの依存関係の削除
-c オプションは、依存関係セットの管理カスタマイズをクリアします。目標サービスの依存関係のセットが、マニフェストおよびプロファイルレイヤーで提供された依存関係のセットに戻ります。レイヤーの内容と階層については、リポジトリレイヤーを参照してください。
次のコマンドは、milestone/goals サービスから、デフォルトの milestone/multi-user-server 依存関係を除くすべての依存関係を削除します。milestone/goals サービスではない目標サービスのすべての admin レイヤー依存関係をクリアするには、-g オプションを使用します。
$ svcadm goals -c
次のどちらのコマンドも、マニフェストレイヤーまたはプロファイルレイヤーにある目標の依存関係セットのみが残ることを示します。
$ svcprop -p goals-dependencies/entities -l all milestone/goals $ svccfg -s milestone/goals listprop -l all goals-dependencies/entities
svccfg delcust コマンドは、サービスインスタンスのすべての admin レイヤーのカスタマイズを削除できます。目標サービスインスタンスの依存関係のカスタマイズのみを削除するには、svcadm goals コマンドの -c オプションを使用します。delcust サブコマンドの詳細は、使用例 40, カスタマイズの削除を参照してください。
目標をファイルでバックアップされた構成 (バンドルサポート付きの構成とも呼ばれます) として設定するには、複数のシステムの構成の説明に従って SMF プロファイルを作成します。ファイルでバックアップされた構成は、svcadm goals -c コマンドを使用して削除できません。
既存の目標サービスの場合、プロファイルを作成するためのもっとも簡単な方法は svccfg を使用したプロファイルの作成方法の説明に従って svccfg extract コマンドを使用することです。goals-dependencies セクションを変更します。
次のコマンドは、プロファイルレイヤーで作成されたカスタマイズのほか、admin レイヤーで作成されたすべてのカスタマイズを表示します。
$ svccfg -s milestone/goals listcust -L goals-dependencies