The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > UNIX pour les nuls Questions et réponses > Réponses aux questions fréquemment posées > Conseils et Didacticiels
.
google unix.com



Conseils et Didacticiels Des articles de nos utilisateurs.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Dimanche Solaris10 quickgun SUN Solaris 2 02-16-2009 06:46 AM
Re: Crontab dans solaris10 gullapalli SUN Solaris 7 05-05-2008 07:29 PM
Détection de carte réseau dans Solaris10 jimthompson IP Networking 1 12-06-2005 09:35 AM
Détection de carte réseau dans Solaris10 jimthompson UNIX for Advanced & Expert Users 1 12-06-2005 09:34 AM
création d'un service dans init.d collins UNIX for Advanced & Expert Users 2 09-30-2004 10:28 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 11-16-2006
Tornado's Avatar
Tornado Tornado is offline Forum Advisor  
Registered User
  
 

Join Date: Nov 2006
Lieu: Melbourne
Messages: 249
Création d'un service Solaris10

Les grandes étapes sont nécessaires:
o Déterminer le processus de démarrage et l'arrêt de votre service.
o Créer un nom pour le service, et la catégorie de ce service s'inscrit dans.
o Déterminez si votre service est fourni par plusieurs instances.
o Identifier tous les rapports de dépendance entre ce service et tout autre service.
o Si un script est nécessaire pour démarrer et arrêter le processus, de créer le script et le placer dans un répertoire tel que / usr / local / svc / method
o Créez un fichier manifeste service pour votre service. Ce fichier décrit les services et toutes les relations de dépendance. Service manifeste sont arrachés dans le référentiel soit en utilisant svccfg commande ou au moment du démarrage.
o Intégrer les scripts en utilisant la SMF svccfg utilité.

Le texte suivant montre un exemple.
Code:
# vi /usr/local/svc/method/newservice
#!/sbin/sh
#
# Copyright (c) 1995, 1997-1999 by Sun Microsystems, Inc.
# All rights reserved.
#
#ident  "@(#)newservice    1.14    06/11/17 SMI"

case "$1" in
'start')
	/usr/bin/newservice &
	;;

'stop')
        /usr/bin/pkill -x -u 0 newservice
	;;

*0
	echo "Usage: $0 { start | stop }"
	;;
esac
exit 0

# chmod 544 /usr/local/svc/method/newservice

# cd /var/svc/manifest/site
# vi newservice.xml
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
    Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.

    pragma ident        "@(#)newservice.xml 1.2     04/08/09 SMI"
-->

<service_bundle type='manifest' name='OPTnew:newservice'>

<service
    name='site/newservice'
    type='service'
    version='1'>

    <single_instance/>
	<dependency
            name='usr'
            type='service'
            grouping='require_all'
            restart_on='none'>
                <service_fmri value='svc:/system/filesystem/local'/>
        </dependency>

        <dependency
            name='newservice'
            grouping='require_all'
            restart_on='none'>
            <service_fmri value='svc:/milestone/multi-user'/>
        </dependency>

        <exec_method
            type='method'
            name='start'
            exec='/lib/svc/method/newservice start'
            timeout_seconds='30' />

        <exec_method
            type='method'
            name='stop'
            exec='/lib/svc/method/newservice stop'
            timeout_seconds='30' />

        <property_group name='startd' type='framework'>
                <propval name='duration' type='astring' value='transient' />
        </property_group>

        <instance name='default' enabled='true' />

        <stability value='Unstable' />

        <template>
                <common_name>
                        <loctext xml:lang='C'>
                                New Service
                        </loctext>
                </common_name>
        </template>
</service>

</service_bundle>
La section suivante décrit les entrées dans le fichier:

o Standard Header.
Code:
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM
"/usr/share/lib/xml/dtd/service_bundle.dtd.1">
o Commentaire Section.
Code:
<!--
    Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.

    pragma ident        "@(#)newservice.xml 1.2     04/08/09 SMI"
-->
o Le nom du service. le type (manifeste) indique un simple service plutôt que d'une étape, le paquet qui fournit le service, et le nom du service.
Code:
<service_bundle type='manifest' name='OPTnew:newservice'>
o Service de la catégorie, le type, le nom et la version.
Code:
<service
    name='site/newservice'
    type='service'
    version='1'
o La question de savoir si plusieurs instances du service fonctionnera.
Code:
<single_instance/>
o le modèle de service à utiliser. L'entrée indique que le service sera lancé par svc.startd. transitoire de services sont mis en marche une fois et de ne pas redémarré.
Code:
<property_group name='startd' type='framework'>
                <propval name='duration' type='astring' value='transient' />
        </property_group>
o Comment le service est démarré et arrêté.
Code:
        <exec_method
            type='method'
            name='start'
            exec='/lib/svc/method/newservice start'
            timeout_seconds='30' />

        <exec_method
            type='method'
            name='stop'
            exec='/lib/svc/method/newservice stop'
            timeout_seconds='30' />
o Définir une dépendance pour ce service. La première entrée indique que le requiert le système de fichiers newservice / service local.
Code:
	<dependency
            name='usr'
            type='service'
            grouping='require_all'
            restart_on='none'>
                <service_fmri value='svc:/system/filesystem/local'/>
        </dependency>
o La deuxième entrée fait en sorte que votre service est associé à l'événement multi-utilisateur et que la multi-étape exige que l'utilisateur de ce service.
Code:
        <dependency
            name='newservice'
            grouping='require_all'
            restart_on='none'>
            <service_fmri value='svc:/milestone/multi-user'/>
        </dependency>
o Création de l'instance.
Code:
        <instance name='default' enabled='true' />

        <stability value='Unstable' />
o Création d'informations pour décrire le service.
Code:
        <template>
                <common_name>
                        <loctext xml:lang='C'>
                                New Service
                        </loctext>
                </common_name>
        </template>
Le nouveau service (newservice) doit maintenant être importés dans SMF.
Ceci est fait en exécutant l'utilitaire svccfg:
Code:
# svccfg import /var/svc/manifest/site/newservice.xml
Après le service a été importé dans la SMF, il devrait être visible à l'aide de la commande Svcs.
Code:
# svcs newservice
STATE		STIME	FMRI
online		8:57:35	svc:/site/newservice:default
#
Il devrait également être possible de manipuler le service en utilisant svcadm.
Code:
# svcadm -v disable site/newservice
site/newservice disabled.
# svcs newservice
STATE		STIME	FMRI
disabled	9:07:15	svc:/site/newservice:default
# svcadm -v enable site/newservice
site/newservice enabled.
# svcs newservice
STATE		STIME	FMRI
online		9:17:01	svc:/site/newservice:default
#
Enfin, vous pouvez constater que le multi-étape exige la newservice afin de mener à bien ses exigences.
Code:
# svcs -d milestone/multi-user:default
STATE		STIME	FMRI
disabled	8:43:16 svc:/platform/sun4u/sf880drd:default
online		8:43:16 svc:/milestone/name-services:default
online		8:43:33 svc:/system/rmtmpfiles:default
online		8:43:42 svc:/network/rpc/bind:default
online		8:43:46 svc:/milestone/single-user:default
online		8:43:46 svc:/system/utmp:default
online		8:43:47 svc:/system/system-log:default
online		8:43:49 svc:/system/filesystem/local:default
online		8:44:01 svc:/system/mdmonitor:default
online		9:17:01 svc:/site/newservice:default
#

Dernière édition par chalumeau; au 11.16.2006 08:12 PM.. Motif: fixer xml tag incomplet pour le service. la fermeture '>' n'était pas présent
 

Bookmarks

Tags
solaris

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 05:32 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0