against parallel execution in shell (flock)

来源:互联网 发布:2008经济危机数据 编辑:程序博客网 时间:2024/05/21 10:33

http://blog.chinaunix.net/uid-25324849-id-3077304.html

#! /bin/bash -

 

set -x

#exec 6<>"mylockfile.sh"

{

         flock -n 6

#       [ "$?" -eq "1" ] && {echo "fail"; exit;}

         if [ "$?" -eq "1" ]; then

                   echo "fail";

                   exit;

         fi

         echo $$

         sleep 10

} 6<>"mylockfile.sh"


在函数或者子shell里执行flock,返回之后已不再持有锁,需要保护的代码应该放在上面sleep前后。