サービス構成を変更した場合、実行中のスナップショットにはこれらの変更は即座に反映されません。これらの変更は、現在のプロパティー値または編集中のプロパティー値として、サービス構成リポジトリに格納されます。リフレッシュ操作では、指定したサービスインスタンスの実行中のスナップショットを、編集中の構成の値で更新します。
svcadm refresh および svccfg refresh コマンドはどちらも次の手順を実行します。
実行中のスナップショットに編集中のプロパティーをコミットする、新しい実行中のスナップショットを作成します。
リフレッシュメソッドが存在し、インスタンスが online または degraded の状態になっている場合に、インスタンスのリフレッシュメソッドを実行します。リフレッシュメソッドは、変更が行われたことをアプリケーションに通知する必要があります。リフレッシュメソッドは、実行中のスナップショットからプロパティー値を再読み込みする場合があります。リフレッシュメソッドが存在しない場合でも、実行中のスナップショット内の構成は更新されます。
svcadm refresh コマンドはサービスインスタンス上で動作します。svccfg refresh コマンドはサービスインスタンスまたは親サービス上で動作します。サービスが指定されている場合、svccfg refresh コマンドは、そのサービスのすべてのインスタンスをリフレッシュします。サービスインスタンスのスナップショットだけが取得され親サービスのスナップショットは取得されませんが、親サービスのプロパティーはサービスインスタンスに継承されます。変更された親サービスのプロパティーは、インスタンスがこれらの変更をオーバーライドしない場合、サービスインスタンスのスナップショットに表示されます。
依存関係の変更など、一部の変更は即座に有効になります。その他の変更は、サービスの再起動に説明しているように、サービスが再起動するまで有効になりません。アプリケーションの実行中に行えない変更には、再起動後のリフレッシュが必要です。アプリケーションの実行中に行えない変更にはたとえば、ソケットの開閉や環境変数のリセットなどがあります。
svcadm refresh コマンドとともに -s オプションを指定すると、svcadm はインスタンスをリフレッシュし、インスタンスが online、degraded、または maintenance の状態になるまで待機してから戻ります。svcadm コマンドは、インスタンスがこれらのいずれかの状態に達したとき、またはインスタンスがこれらのいずれかの状態に達するには管理者の操作が必要だと判断したときに戻ります。遷移を行うか、遷移を行えないと判断するまでの上限を秒単位で指定するには、-T オプションを -s オプションとともに使用します。