The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX para Dummies Perguntas & Respostas > Respostas a Perguntas Frequentes > Dicas e Tutoriais
.
google unix.com



Dicas e Tutoriais Helpful artigos de nossos usuários.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Domingo Solaris10 quickgun Sun Solaris 2 02-16-2009 06:46
Re: Crontab em solaris10 Gullapalli Sun Solaris 7 05-05-2008 08:29
Detecção de NIC em Solaris10 jimthompson IP Networking 1 12-06-2005 09:35
Detecção de NIC em Solaris10 jimthompson UNIX & avançada para usuários experientes 1 12-06-2005 09:34
criar um serviço em init.d collins UNIX & avançada para usuários experientes 2 09-30-2004 11:28

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-16-2006
Tornado's Avatar
Tornado Tornado is offline Forum Advisor  
Usuário
  
 

Join Date: Nov 2006
Localização: Melbourne
Lugares: 249
Criando um serviço Solaris10

Os passos gerais necessários são:
o Determine o processo para iniciar e parar o seu serviço.
o Criar um nome para o serviço, bem como da categoria este serviço cai em.
o Determinar se o seu serviço é executado várias instâncias.
o Identificar qualquer dependência das relações entre este serviço e qualquer outro serviço.
o Se um script é necessário para iniciar e parar o processo, criar o script e colocá-lo em um diretório local, tais como / usr / local / svc / método
o Criar um serviço de arquivo manifesto para o seu serviço. Este arquivo descreve o serviço e qualquer dependência relacionamentos. Serviço manifestos são puxados para o repositório usando svccfg comando ou no momento de arranque.
o Incorporar os scripts em SMF usando o utilitário svccfg.

O seguinte mostra um exemplo.

Código:
# 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>

A seguir descreve as entradas no arquivo:

o Standard Header.

Código:
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM
"/usr/share/lib/xml/dtd/service_bundle.dtd.1">

o Comentar secção.

Código:
<!--
    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 O nome do serviço. o tipo (manifesto), indica um simples serviço em vez de um marco, o pacote que fornece o serviço, bem como o nome do serviço.

Código:
<service_bundle type='manifest' name='OPTnew:newservice'>

o Categoria de serviço, tipo, nome e versão.

Código:
<service
    name='site/newservice'
    type='service'
    version='1'

o Se várias instâncias do serviço será executado.

Código:
<single_instance/>

o o modelo de serviço para uso. A entrada indica que o serviço será iniciado por svc.startd. transiente serviços foram iniciados uma vez e não reiniciado.

Código:
<property_group name='startd' type='framework'>
                <propval name='duration' type='astring' value='transient' />
        </property_group>

o Como o serviço é iniciado e parado.

Código:
        <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 Defina quaisquer dependências para este serviço. A primeira afirma que a entrada newservice exige o sistema de arquivos / serviço local.

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

o A segunda entrada torna a certeza de que o serviço é associado com o multi-usuário marco e que o multi-usuário marco exige este serviço.

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

o Criando o exemplo.

Código:
        <instance name='default' enabled='true' />

        <stability value='Unstable' />

o Criando informações para descrever o serviço.

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

O novo serviço (newservice) agora tem de ser importado para SMF.
Isto é feito por correr o utilitário svccfg:

Código:
# svccfg import /var/svc/manifest/site/newservice.xml

Depois que o serviço foi importado para o SMF que deve ser visível usando o comando SVCS.

Código:
# svcs newservice
STATE		STIME	FMRI
online		8:57:35	svc:/site/newservice:default
#

Deverá também ser possível manipular o serviço utilizando svcadm.

Código:
# 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
#

Finalmente, você pode observar que o marco multiusuário requer a newservice, a fim de completar as suas necessidades.

Código:
# 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
#


Última edição por maçarico; em 11/16/2006 08:12.. Motivo: a correção incompleta tag XML para o serviço. o fechamento '>' não estava presente
 

Marcadores

Tags
solaris

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 01:14.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0