SMF_RESTARTER(5) Standards, Environments, and Macros SMF_RESTARTER(5)

smf_restarter - service management facility conventions for restarters

All service instances in the service management facility must be managed by a restarter. This manual page describes configuration, functionality, and reporting characteristics that are common to all restarters in the framework. Characteristics specific to a particular restarter are described in the restarter's man page.

For each managed service, a restarter relies on retrieving properties on the service instance to determine configuration. The restarter manages a set of property groups to communicate the current disposition of a service with display tools such as svcs(1).

The common restarter configuration for all services is captured in the general property group. This group includes the following required and optional property settings.

enabled

This is a required property. If set, the restarter of an instance attempts to maintain availability of the service.

restarter

This is an optional property that allows the specification of an alternate restarter to manage the service instance. If the restarter property is empty or absent, the restarter defaults to svc.startd(1M).

single_instance

This is an optional property. When set, only one instance of the service is allowed to transition to an online or degraded status at any time. Note that no known implementation honours this setting, and it should be considered obsolete.

All restarters report status using the restarter property group, which includes the following properties:

next_state

The current state and next state, if currently in transition, for instances stored in these properties. See smf(5) for a description of the potential states.

auxiliary_state

An astring with no spaces that contains a precise term to describe the full restarter-specific state in combination with the restarter state property. The auxiliary state cannot always be set and is always cleared during transition out of any state. Each restarter must define the precise list of auxiliary states it uses.

state_timestamp

The time when the current state was reached.

contract

The primary process contract ID, if any, under which the service instance is executing.

svcs(1), svc.startd(1M), service_bundle(4), smf(5), smf_method(5)
December 11, 2019