linux user group brescia

immagine del castello

Archivio della mailing list

Processi concorrenti

Vernia Damiano melkor.x a tiscali.it
Lun 16 Feb 2004 11:24:00 UTC
	Ciao, finalmente sono riuscito a far partire in modo concorrente 
(e pultito) un numero specificato e costante di processi. Forse puo'
servire e quindi ecco lo scriptino bash:

#################################################################

#!/bin/bash

INDICE=8	# Numero totale di processi da avviare
TEMPO=5		# Massimo tempo d'attesa simulazione processo

NUMPROC=$1	# Numero di processi concorrenti
shift
PARAMETRI=( "$@" )	# Parametri per ogni processo

function avvia() {	# Avvia un singolo processo
	local temp
	temp=$RANDOM
	let "temp %= $TEMPO"
	let "temp += 1"
	echo Inizio $1 $temp "${PARAMETRI[@]}"
	sleep ${temp}
	echo Fine $1 $temp
	kill -s SIGRTMIN $$	# Avvisa per avviare un nuovo processo
}

function parti() {
	if [ $INDICE -gt 0 ] ; then
		avvia $INDICE "${PARAMETRI[@]}" &
		let "INDICE--"
	else
		trap : SIGRTMIN
	fi
}

trap parti SIGRTMIN

while [ "$NUMPROC" -gt 0 ]; do	# Avvia $NUMPROC processi concorrenti
	parti;
	let "NUMPROC--"
done

wait
trap - SIGRTMIN

#############################################################

	Puo' essere utile su sistemi multiprocessore!
Qualcuno sa indicarmi un segnale un po' piu' intelligente da usare?

-- 
							Ciriciao
						LtC. Melkor?! B. Xapatan




Maggiori informazioni sulla lista Lug