各 SMF サービスインスタンスは、リスタータによって管理されます。リスタータは、インスタンス構成を取得し、実行環境を提供します。すべてのリスタータに共通した情報については、smf_restarter(5)を参照してください。
svc.startd デーモンは、SMF のマスターリスタータデーモンであり、すべてのサービスインスタンスのデフォルトリスタータです。svc.startd デーモンは、すべてのサービスインスタンスおよびその依存関係の状態を管理します。インスタンスがオンライン状態に移行したときに依存関係が充足されていると、マスターリスタータは、ほかのインスタンスの起動メソッドを呼び出すか、起動メソッドを呼び出すように委任リスタータに指示します。マスターリスタータは、インスタンスの依存関係が充足されなくなると、サービスインスタンスを停止します。リスタータは、インスタンスに障害が発生すると、インスタンスの再起動を試みます。インスタンスは、そのすべての依存関係が充足されるまでオンラインにできないので、インスタンスの依存関係が、インスタンスの再起動動作の判断に役立ちます。それぞれの依存関係宣言で設定されているプロパティーによって、その依存関係が必要かどうかと、どのような場合に依存関係が再起動したときにインスタンスを再起動するかが定義されます。
その他のタスクの中では、svc.startd デーモンが、適切な /etc/rc*.d スクリプトを適切な実行レベルで起動します。これは以前に init で行われていた作業です。
次の例では、svc.startd が network/ipmp:default サービスインスタンスのリスタータであることを示します。ほかの出力は、この例から省略されています。
$ svcs -l ipmp:default restarter svc:/system/svc/restarter:default
restarter プロパティーが空または svc:/system/svc/restarter:default に設定されている場合、サービスインスタンスは svc.startd によって管理されます。svc.startd デーモンの詳細は、svc.startd(1M)のマニュアルページを参照してください。
一部のサービスは、起動時に共通の動きが見られます。委任リスタータは、これらのサービスに特定の実行環境とアプリケーション固有の再起動動作を提供します。
委任リスタータの例には、インターネットサービスを常に実行しておくのではなく、要求に応じて起動できる inetd があります。inetd リスタータは、入力および出力ファイル記述子として、ネットワーク接続から構成される環境をそのサービスインスタンスに提供します。inetd デーモンの詳細は、inetd(1M)のマニュアルページを参照してください。次の例では、inetd が cups/in-lpd:default サービスインスタンスのリスタータであることを示します。ほかの出力は、この例から省略されています。
$ svcs -l cups/in-lpd:default restarter svc:/network/inetd:default
restarter プロパティーで指定された委任リスタータが利用可能になると、このリスタータがサービスインスタンスの管理を担います。