Salta l'introduzione Italia - Italiano
HP.com Italia Prodotti e Servizi Supporto e Drivers Soluzioni Come Acquistare
» Contatta HP
Altre opzioni
HP.com Italia
Guida all'amministrazione di sistemi HP-UX: Operazioni abituali di gestione: HP-UX 11i versione 3 > Capitolo 2 Avvio e spegnimento

Personalizzazione di avvio ed arresto

» 

Documentazione tecnica

Libro completo in PDF
» Feedback
Inizio contenuto

 » Sommario

 » Indice

Questa sezione descrive come fare in modo che applicazioni e servizi siano automaticamente eseguiti all’avvio e fermati automaticamente all’arresto.

Per automatizzare l’avvio e l’arresto di un sottosistema, è necessario eseguire tutte le operazioni seguenti:

  1. Decidere a quale livello di esecuzione si desidera che il sottosistema si avvii o si arresti.

    Normalmente, i sottosistemi sono arrestati al livello di esecuzione inferiore rispetto a quello a cui sono stati avviati, per cui un sottosistema avviato al livello d’esecuzione 3, sarà arrestato al livello d’esecuzione 2. Probabilmente si desidererà avviare il sottosistema al livello 1, 2 o 3.

    In genere, i livelli di esecuzione eseguono le seguenti funzioni:

    Livello di esecuzione 1:

    configurazione minima di sistema

    Livello di esecuzione 2:

    servizi multiutente, eccetto server NFS

    Livello di esecuzione 3:

    server NFS (per condividere i filesystem locali)

    Per vedere esattamente che cosa è eseguito nel sistema a ogni livello di esecuzione, esaminare /sbin/rcn.d/S*, dove n è il livello di esecuzione.

    A meno che il sistema dipenda da servizi di esportazione di NFS, quali rpc.mountd e nfsd, il livello di esecuzione 2 è un buon livello a cui avviarlo.

    Il livello d’esecuzione 2 è una scelta sicura e normalmente logica, perché ha un segnaposto che HP garantisce non sarà sovrascritto da future versioni di HP o software di terzi; agli altri livelli di esecuzione questo tipo di segnaposto, e la relativa garanzia, non esistono.

  2. Scrivere uno script per avviare ed arrestare i sottosistemi ed uno script di configurazione di accompagnamento per indicare alla procedura di avvio se questo script deve essere eseguito o no.

    Usare il modello /sbin/init.d/template; vedere l’esempio seguente.

  3. Creare collegamenti simbolici che facciano in modo che lo script sia eseguito al momento corretto nelle sequenze di avvio e spegnimento.

    Vedere l’esempio seguente.

  4. Riavviare il sistema per assicurarsi che tutto funzioni.

    In un sistema carico di lavoro, ciò può rivelarsi scomodo, ma occorre diffidare dei test eseguiti in un sistema diverso da quello in cui il sottosistema sarà effettivamente in esecuzione; qualsiasi differenza nella configurazione di avvio/spegnimento fra il sistema di test ed il sistema di produzione potrebbe invalidare il test.

Esempio:

Questo esempio mostra un modo per automatizzare l'avvio di un daemon server, daemon_prodotto_web:

  1. Decidere il livello di esecuzione:

    1. Vedere che cosa è avviato al livello d’esecuzione 2:

      ls /sbin/rc2.d/S*
      /sbin/rc2.d/S008net.sd 
      /sbin/rc2.d/S560SnmpMaster
      /sbin/rc2.d/S100swagentd 
      /sbin/rc2.d/S565SnmpHpunix...
    2. Vedere che cosa è avviato al livello d’esecuzione 3:

      ls /sbin/rc3.d/S*
      /sbin/rc3.d/S100nfs.server

      /sbin/rc3.d/S100nfs.server è un collegamento a /sbin/init.d/nfs.server, che avvia portmap, rpc.mountd, nfsd e le funzioni relative. Dal momento che il daemon prodotto_web non ha bisogno di nessuno di essi, è sicuro avviarlo al livello 2, usando il segnaposto numero 900 (vedere oltre).

      Allo stesso modo, arrestare lo script al livello di esecuzione 1, usando il segnaposto numero 100.

  2. Scrivere gli script di avvio/spegnimento e di configurazione.

    È possibile usare /sbin/init.d/template come base e creare il seguente script di avvio/spegnimento, salvandolo come /sbin/init.d/prodotto_web:

    #!/sbin/sh
     
    PATH=/usr/sbin:/usr/bin:/sbin
    export PATH
    daemon_prodotto_web="prodotto_web"
     
    rval=0
     
    killproc()
    {
     pid=`ps -e | awk '$NF~/'"$1"'/ {print $1}'`
     if [ "X$pid" != "X" ]
    then
        if kill "$pid"
        then
           echo "$1 arrestato"
        else
           rval=1	
           echo "Impossibile arrestare $1"
        fi
     fi
    }
     
     
    case $1 in
    'start_msg')
            # messaggio che sarà visualizzato nell'elenco di avvio
            echo "Avvio del daemon prodotto_web"
            ;;
     
    'stop_msg')
            # messaggio che sarà visualizzato nell’elenco di arresto
            echo "Arresto del daemon prodotto_web"
            ;;
    'start')
            # origine file di configurazione
            if [ -f /etc/rc.config.d/prodotto_web]
            then
               . /etc/rc.config.d/prodotto_web
            else
               echo "ERRORE: /etc/rc.config.d/prodotto_web NON TROVATO"
            fi
     
            # Controlla se esiste il daemon prodotto_web, 
           # il suo eseguibile e se è stato avviato
            if [ "$PRODOTTO_WEB" -eq 1 -a -x  
               "$PRODOTTO_WEBHOME/$daemon_prodotto_web" ]
            then
               cd $PRODOTTO_WEBHOME
               ./$daemon_prodotto_web
               print "$daemon_prodotto_web avviato"
           	else
               print "Impossibile avviare $daemon_prodotto_web"
               rval=2
            fi
            ;;
     
    'stop')
            killproc $daemon_prodotto_web
            ;;
     
    *)
            echo "sintassi: $0 {start|stop|start_msg|stop_msg}"
            rval=1
            ;;
    esac
     
    exit $rval

    Quindi, creare il file di configurazione, /etc/rc.config.d/prodotto_web, per indicare allo script dove trovare il daemon prodotto_web e se avviarlo o no (1=sì; 0=no):

    #!/sbin/sh#
    # v1.0  avvio/interruzione configurazione prodotto_web
    # PRODOTTO_WEB:       Impostare ad 1 per avviare
    #                      il daemon_prodotto_web
    # PRODOTTO_WEBHOME: directory home di prodotto_web
    PRODOTTO_WEB=1
    PRODOTTO_WEBHOME=/sample/prodotto_web/binhp
    NOTA: La maniera per rimuovere un sottosistema dalla sequenza di avvio è impostare a 0 la variabile di avvio (in questo caso PRODOTTO_WEB), piuttosto che eliminare lo script. Ciò è particolarmente importante nel caso di script HP o di terzi; non modificarli, eliminarli o spostarli; se non si desidera eseguire il corrispondente script di avvio, limitarsi ad impostare a 0 la variabile dello script corrispondente in /etc/rc.config.d/.
  3. Creare collegamenti simbolici che facciano in modo che lo script sia eseguito al punto giusto nelle sequenze di avvio e spegnimento.

    Dato che HP garantisce che gli script che usano il numero 900 nel livello di esecuzione 2 non saranno sovrascritti quando si aggiorna il sistema o si aggiunge software di terze parti, e che il livello di esecuzione 2 è un buon punto per avviare il daemon prodotto_web, al nostro script è stato assegnato il numero 900 ed è stato collegato alla directory /sbin/rc2.d:

    ln -s /sbin/init.d/prodotto_web /sbin/rc2.d/S900prodotto_web

    La S indica “start” e 900 stabilisce l’ordine di avvio nel livello di esecuzione, in modo che lo script sia eseguito tardi (ultimo, al momento) nel livello di esecuzione 2.

    Allo stesso modo, HP garantisce che gli script che usano il numero 100 nel livello di esecuzione 1 non saranno sovrascritti, al nostro script è stato assegnato il numero 100 ed è stato collegato alla directory /sbin/rc1.d, questa volta con una lettera di codice K (per “kill”):

    ln -s /sbin/init.d/prodotto_web /sbin/rc1.d/K100prodotto_web

    Ciò significa che all’arresto del sistema il daemon prodotto_web sarà arrestato dopo la maggior parte delle altre funzioni nel livello d’esecuzione 1.

  4. Provare lo script stesso e controllare che funzioni correttamente nelle procedure di avvio e spegnimento.

    Eseguire /sbin/init.d/prodotto_web più volte “manualmente” per metterlo a punto, quindi installarlo – come descritto nel punto 3 sopra – in un sistema di prova, che sia stato riavviato, per controllare che il daemon si avvii e si arresti correttamente, infine installarlo nel sistema di produzione e riavviarlo.

Versione stampabile
Informativa sulla privacy Usando questo sito si accettano le sue condizioni
© 2008 Hewlett-Packard Development Company, L.P.