SMF includes a master restarter daemon and delegated restarters.
The svc.startd daemon is the master process starter
and restarter for the Solaris OS. The daemon is responsible for managing service
dependencies for the entire system. The daemon takes on the previous responsibility
that init held of starting the appropriate /etc/rc*.d
scripts at the appropriate run levels. First, svc.startd retrieves
the information in the service configuration repository. Next, the daemon
starts services when their dependencies are met. The daemon is also responsible
for restarting services that have failed and for shutting down services whose
dependencies are no longer satisfied. The daemon keeps track of service state
through an operating system view of availability through events such as process
death.
Some services have a set of common behaviors on startup. To provide commonality among these services, a delegated restarter might take responsibility for these services. In addition, a delegated restarter can be used to provide more complex or application-specific restarting behavior. The delegated restarter can support a different set of methods, but exports the same service states as the master restarter. The restarter's name is stored with the service. A current example of a delegated restarter is inetd, which can start Internet services on demand, rather than having the services always running.