LOCKDIR=/tmp/lock.sh.lockdir
COUNTFILE=/tmp/lock.sh.count
count(){
if [ "$1" = "lock" ]; then
until mkdir $LOCKDIR 2> /dev/null; do
sleep 1
done
fi
cnt=`cat $COUNTFILE`
cnt=`expr $cnt + 1`
echo $cnt > $COUNTFILE
echo $cnt
if [ "$1" = "lock" ]; then
rmdir $LOCKDIR
fi
}
if [ -d $LOCKDIR ]; then
echo "Lock directory $LOCKDIR exist."
exit 1
fi
echo "*** WITH LOCK FILE ***"
echo 0 > $COUNTFILE
for i in 1 2 3 4 5 6 7 8 9 10; do
count lock &
done
wait
echo "*** WITHOUT LOCK FILE ***"
echo 0 > $COUNTFILE
for i in 1 2 3 4 5 6 7 8 9 10; do
count &
done
wait
rm $COUNTFILE
$ ./lock.sh
*** WITH LOCK FILE ***
1
2
3
4
5
6
7
8
9
10
*** WITHOUT LOCK FILE ***
1
1
1
1
1
1
1
1
1
1