SMF は、従来の UNIX の起動スクリプト、init 実行レベル、および構成ファイルを補強するインフラストラクチャーを提供します。SMF には、次の機能が備わっています。
管理エラー、ソフトウェアのバグ、修復不可能なハードウェアエラーなどの原因によって失敗したサービスを、依存関係の順番に自動的に再起動します。依存関係の順番は依存記述で定義されます。
表示可能なサービスオブジェクトを新しいコマンド svcs を使って作成したり、管理可能なサービスオブジェクトをコマンド svcadm と svccfg を使って作成したりします。SMF サービスおよび従来の init.d スクリプトのどちらにおいても、svcs -p を使用すると、サービスとプロセスの関係を表示することができます。
サービス構成のスナップショットを自動的に取ることで、バックアップ、復元、およびサービスへの変更の取り消しを容易にします。
サービスが実行できない原因を svcs -x で明らかにし、デバッグおよびサービスに関する質問を容易にします。また、この処理は、各サービスの個別の永続的なログファイルを使用するとより楽に行えます。
svcadm を使用してサービスを有効化および無効化します。この変更は、更新後やリブート後も維持できます。-t オプションを使用した場合、変更は一時的です。
ルート以外のユーザーに対して管理者がタスクを安全に委任する機能を拡張します。この機能には、プロパティーの変更と、システムのサービスの有効化、無効化、および再起動とが含まれます。
大規模システムにおけるブートを高速化します。これは、サービス間の依存関係に従って各サービスを並列的に起動することで実現しています。シャットダウン時にはその逆の処理が実行されます。
ブートコンソールの出力をカスタマイズして、表示を最小限にする (デフォルト) か、表示を多くする (boot -m verbose を使用) かを選択できます。
可能な場合には既存の管理業務との互換性を維持します。たとえば、顧客および ISV から提供される rc スクリプトの大部分は、通常どおり動作します。
「依存記述」では、サービス間の関係を定義します。これらの関係を使用すると、すべてのサービスを再起動するのではなく、障害の影響を直接受けているサービスのみを再起動することにより、障害を的確に封じ込めることができます。依存記述のもう 1 つの利点は、スケーラブルで再現可能な初期化プロセスを実現できることです。また、依存性をすべて定義することにより、独立したすべてのサービスを並列に起動できるため、今日の高並列マシンをうまく利用することができます。
SMF では、管理者がサービスに対して呼び出すことのできる一連のアクションを定義します。これらのアクションには、有効化、無効化、再表示、再起動、維持などがあります。各サービスは、管理アクションを実行するサービスリスタータによって管理されます。通常、アクションを実行する場合、リスタータはサービスに対していくつかのメソッドを実行します。各サービスのメソッドは、サービス構成リポジトリで定義されます。リスタータは、これらのメソッドを使って、サービスをある状態から別の状態へ移行できます。
サービス構成リポジトリでは、フォールバックができるように、各サービスが正常に起動されたときにサービスごとのスナップショットを取ります。また、リポジトリを使用すると、一貫した永続的な方法でサービスを有効または無効にしたり、サービスの状態を一貫して表示したりできます。この機能は、サービスの構成に関する問題を修正するのに役立ちます。