Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
/usr/share/lib/xml/dtd/service_bundle.dtd.1
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, links to documentation, and metadata about property groups and properties.
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 are done when the system is next rebooted with that alternate root path.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Stability Committed |
pkgadd(1M), pkgrm(1M), svcadm(1M), svccfg(1M), svc.startd(1M), libscf(3LIB), attributes(5), locale(5), smf(5), smf_method(5), smf_template(5)
Nested service_bundle elements must be of the same type.