11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

exit 0<br />

Capitolo 29. Debugging<br />

# =================== NOTA DELL’AUTORE DELLO SCRIPT ==================== #<br />

# Non è completamente esente da errori.<br />

# L’ho eseguito con limite = 500 e dopo poche centinaia <strong>di</strong> iterazioni,<br />

#+ uno dei thread concorrenti è scomparso!<br />

# Non sono sicuro che si tratti <strong>di</strong> collisioni dal trap dei segnali<br />

#+ o qualcos’altro.<br />

# Una volta ricevuto il trap, intercorre un breve lasso <strong>di</strong> tempo tra<br />

#+ l’esecuzione del gestore del trap e l’impostazione del trap successivo.<br />

#+ In questo intervallo il segnale <strong>di</strong> trap potrebbe andar perso e,<br />

#+ conseguentemente, anche la generazione del processo figlio.<br />

# Non ho alcun dubbio che qualcuno riuscirà a in<strong>di</strong>viduare il "bug"<br />

#+ e a lavorerci sopra . . . in futuro.<br />

# ====================================================================== #<br />

# -----------------------------------------------------------------------#<br />

##################################################################<br />

# Quello che segue è lo script originale scritto da Vernia Damiano.<br />

# Sfortunatamente non funziona correttamente.<br />

##################################################################<br />

#!/bin/bash<br />

# Lo script deve essere richiamato con almeno un parametro numerico<br />

#+ (numero dei processi simultanei).<br />

# Tutti gli altri parametri sono passati ai processi in esecuzione.<br />

INDICE=8 # Numero totale <strong>di</strong> processi da mettere in esecuzione<br />

TEMPO=5 # Tempo massimo d’attesa per processo<br />

E_NOARG=65 # Nessun argomento(i) passato allo script.<br />

if [ $# -eq 0 ] # Controlla la presenza <strong>di</strong> almeno un argomento.<br />

then<br />

echo "Utilizzo: ‘basename $0‘ numero_dei_processi [parametri passati]"<br />

exit $E_NOARG<br />

fi<br />

NUMPROC=$1 # Numero dei processi simultanei<br />

shift<br />

PARAMETRI=( "$@" ) # Parametri <strong>di</strong> ogni processo<br />

524

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!