#!/bin/ksh
if [ ! -f $LOCK_FILE ]; then
#不存在锁文件,则直接产生锁
echo $$>$LOCK_FILE
else
#存在琐文件,判断锁文件中所指的PID进程是否存在,直到进程退出停止判断,继续后续执行。
cat $LOCK_FILE|read sh_pid #输入锁文件里的pid
p_cn=`ps -ef |awk '{if ($2 == '$sh_pid') print $3}'|wc -l`#判断该子进程的个数
while (($p_cn))#如果还存在这个子进程,就sleep 60秒,再检查子进程个数,直到个数为0为止
do
sleep 60
p_cn=`ps -ef |awk '{if ($2 == '$sh_pid') print $3}'|wc -l`
done
#原进程退出,写入新PID加锁
echo $$>$LOCK_FILE
fi
flock [-sxon] [-w timeout] lockfile [-c] command...
flock [-sxun] [-w timeout] fd[code]