La commande svcbundle permet de générer un manifeste de service valide. Dans l'exemple suivant, notez que, par défaut, un manifeste généré par la commande svcbundle spécifie un service transitoire et spécifie la dépendance multi-user.
Exemple 13-3 Manifeste de service SMF généréDans la commande suivante, le nom du script indiqué dans Création d'un script à exécuter à la première initialisation est spécifié comme valeur de start-method. Le nom du script est spécifié en tant que /opt/site/first-boot-script.sh car le package créé dans Création d'un package IPS pour le script et le service installe le script first-boot-script.sh dans /opt/site/first-boot-script.sh.
Dans la commande suivante, la propriété completed est spécifiée par une liste séparée par des deux-points de noms de groupes de propriétés, de noms de propriétés, de types de propriétés et de valeurs initiales de propriétés.
$ svcbundle -s service-name=site/first-boot-script-svc \ -s start-method=/opt/site/first-boot-script.sh \ -s instance-property=config:completed:boolean:false \ > first-boot-script-svc-manifest.xml
Dans le manifeste de service généré affiché ci-dessous, le script de première initialisation, /opt/site/first-boot-script.sh, correspond à la valeur de l'attribut exec de la méthode start. La propriété completed est spécifiée dans l'élément instance qui définit l'instance par défaut de ce service, first-boot-script-svc:default.
<?xml version="1.0" ?>
<!DOCTYPE service_bundle
SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
Manifest created by svcbundle (2014-Jan-14 16:39:30-0700)
-->
<service_bundle type="manifest" name="site/first-boot-script-svc">
<service version="1" type="service" name="site/first-boot-script-svc">
<!--
The following dependency keeps us from starting until the
multi-user milestone is reached.
-->
<dependency restart_on="none" type="service"
name="multi_user_dependency" grouping="require_all">
<service_fmri value="svc:/milestone/multi-user"/>
</dependency>
<exec_method timeout_seconds="60" type="method" name="start"
exec="/opt/site/first-boot-script.sh"/>
<!--
The exec attribute below can be changed to a command that SMF
should execute to stop the service. See smf_method(5) for more
details.
-->
<exec_method timeout_seconds="60" type="method" name="stop"
exec=":true"/>
<!--
The exec attribute below can be changed to a command that SMF
should execute when the service is refreshed. Services are
typically refreshed when their properties are changed in the
SMF repository. See smf_method(5) for more details. It is
common to retain the value of :true which means that SMF will
take no action when the service is refreshed. Alternatively,
you may wish to provide a method to reread the SMF repository
and act on any configuration changes.
-->
<exec_method timeout_seconds="60" type="method" name="refresh"
exec=":true"/>
<property_group type="framework" name="startd">
<propval type="astring" name="duration" value="transient"/>
</property_group>
<instance enabled="true" name="default">
<property_group type="application" name="config">
<propval type="boolean" name="completed" value="false"/>
</property_group>
</instance>
<template>
<common_name>
<loctext xml:lang="C">
<!--
Replace this comment with a short name for the
service.
-->
</loctext>
</common_name>
<description>
<loctext xml:lang="C">
<!--
Replace this comment with a brief description of
the service
-->
</loctext>
</description>
</template>
</service>
</service_bundle>