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:
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.
If the -R option is supplied to pkgadd(1M) or pkgrm(1M), the actions described in this section will be done when the system is next rebooted with that alternate root path.
See attributes(5) for descriptions of the following attributes:
pkgadd(1M), pkgrm(1M), svcadm(1M), svccfg(1M), svc.startd(1M), libscf(3LIB), attributes(5), locale(5), smf(5)
Nested service_bundle elements must be of the same type.