The service management facility, described in smf(5), utilizes an XML-based file format to marshal the description of a set of services or service instances between systems. This file is known as a service bundle. The primary form of a service bundle is the inventory of services that are provided by a package, which is called a service manifest.
The DTD describing the service_bundle is provided at /usr/share/lib/xml/dtd/service_bundle.dtd.1. The attributes and tags are fully described in the commented DTD. The services supplied with the operating system, stored under /var/svc/manifest, provide examples of correctly formed service descriptions.
service_bundle documents can also use the XML Inclusions (XInclude) facility to merge multiple documents into one. A service_bundle document manipulator must therefore support the functionality defined by the XInclude specification.
A complete service description consists of the following:
A set of properties that identify the service and identify its restarter
A set of properties that identify each instance
A set of framework property groups that describe the framework's understanding of each instance
A set of method property groups as required by svc.startd(1M), or by a delegated restarter
Additional optional method property groups
A set of dependency property groups
An optional group of properties that indicate services to which dependencies on the described service were added
A set of application property groups or application-specific typed property groups containing application configuration data
A template that describes supporting information about this service, such as a description and links to documentation.
The document type definition for the service bundle provides markup to define each of these aspects of a service description, as well as a number of entities that identify regular features in describing a service, such as the <create_default_instance> tag.
Service manifests within packages should be identified with the class manifest. Class action scripts that install and remove service manifests are included in the packaging subsystem. When pkgadd(1M) is invoked, the service manifest is imported.
When pkgrm(1M) is invoked, instances in the manifest that are disabled are deleted. Any services in the manifest with no remaining instances are also deleted.
See attributes(5) for descriptions of the following attributes:
Nested service_bundle elements must be of the same type.