1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#!/bin/bash
NUM_FUNCTIONS=10
function myFunction()
{
echo "Function $1 start."
sleep 5
echo "Sending signal to pid: $$."
kill -s SIGUSR1 $$
echo "Function $1 end."
}
function handle_signal()
{
echo "Handeling signal"
let "NUM_FUNCTIONS-=1"
echo "NUM_FUNCTIONS: $NUM_FUNCTIONS:"
}
i=1
echo "main pid: $$"
while [ $i -le 10 ]
do
myFunction $i &
let "i+=1"
done
# Attendre ici que toutes les fonctions se terminent
# trap un signal ici ?
trap handle_signal SIGUSR1 SIGINT
while [ $NUM_FUNCTIONS -ge 0 ]
do
sleep 0
done
echo "Main end"
exit 0; |
Partager