Each SMF service instance is managed by a restarter. The restarter retrieves instance configuration and provides an execution environment. See smf_restarter (5) for information common to all restarters.
The svc.startd daemon is the master restarter daemon for SMF and the default restarter for all service instances. The svc.startd daemon manages states for all service instances and their dependencies. As dependencies are satisfied when instances move to the online state, the master restarter invokes start methods of other instances or directs the delegated restarter to invoke the start method. The master restarter stops a service instance when the dependencies of the instance are no longer satisfied. The restarter attempts to restart an instance if the instance fails. Because an instance cannot be online until all of its dependencies are satisfied, the dependencies of an instance help determine the restart behavior of the instance. Properties set on each dependency declaration define whether that dependency is required and in what cases the instance will be restarted if the dependency is restarted.
Among other tasks, the svc.startd daemon starts the appropriate /etc/rc*.d scripts at the appropriate run levels, which is work that was previously done by init.
The following example shows that svc.startd is the restarter for the network/ipmp:default service instance. Other output has been omitted from this example.
$ svcs -l ipmp:default restarter svc:/system/svc/restarter:default
If the restarter property is empty or set to svc:/system/svc/restarter:default, the service instance is managed by svc.startd. For more information about the svc.startd daemon, see the svc.startd (1M) man page.
Some services have a set of common behaviors on startup. A delegated restarter can provide a specific execution environment and application-specific restarting behavior for these services.
An example of a delegated restarter is inetd, which can start Internet services on demand, rather than having the services always running. The inetd restarter provides its service instances with an environment composed of a network connection as input and output file descriptors. For more information about the inetd daemon, see the inetd (1M) man page. The following example shows that inetd is the restarter for the cups/in-lpd:default service instance. Other output has been omitted from this example.
$ svcs -l cups/in-lpd:default restarter svc:/network/inetd:default
The delegated restarter specified by the restarter property is responsible for managing the service instance once that restarter is available.