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.

Capitolo 29. Debugging<br />

LIMITE=$1 # Numero totale dei processi da mettere in esecuzione<br />

NUMPROC=4 # Numero <strong>di</strong> thread concorrenti (fork?)<br />

PROCID=1 # ID del processo che sta per partire<br />

echo "Il mio PID è $$"<br />

function inizia_thread() {<br />

if [ $PROCID -le $LIMITE ] ; then<br />

./child.sh $PROCID&<br />

let "PROCID++"<br />

else<br />

echo "Limite raggiunto."<br />

wait<br />

exit<br />

fi<br />

}<br />

while [ "$NUMPROC" -gt 0 ]; do<br />

inizia_thread;<br />

let "NUMPROC--"<br />

done<br />

while true<br />

do<br />

trap "inizia_thread" SIGRTMIN<br />

done<br />

exit 0<br />

# ======== Secondo script ========<br />

#!/bin/bash<br />

# child.sh<br />

# Eseguire processi multipli su una postazione SMP.<br />

# Questo script viene richiamato da parent.sh.<br />

# Autore: Tedman Eng<br />

temp=$RANDOM<br />

in<strong>di</strong>ce=$1<br />

shift<br />

let "temp %= 5"<br />

let "temp += 4"<br />

echo "Inizio $in<strong>di</strong>ce Tempo:$temp" "$@"<br />

sleep ${temp}<br />

echo "Termino $in<strong>di</strong>ce"<br />

kill -s SIGRTMIN $PPID<br />

523

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

Saved successfully!

Ooh no, something went wrong!