{
TMP_LOCK_FILE=/tmp/xxxx.lock.file
# 检查锁文件是否存在,如果存在表示系统中有其他实例在运行,则直接退出。
# 需要注意的是,锁文件需要避免重名,可以参照c++ 头文件保护宏的命名方式
if [ -f $TMP_LOCK_FILE ]; then
PROC_PID=`cat $TMP_LOCK_FILE`
if [ `ps aux | grep -v grep | awk -v pid="$PROC_PID" 'BEGIN{res=0}{if($2==pid)res=1}END{printf("%d", res)}' ` -eq 1 ]; then
echo "the proc is running"
exit
else
echo "the proc was killed when last running"
rm -rf $TMP_LOCK_FILE
fi
fi
sleep 2
[ -f $TMP_LOCK_FILE ] && exit
# 开始执行任务前,创建锁文件,并把当前pid 写入锁文件
echo $$ > $TMP_LOCK_FILE
sleep 1
# 判断锁文件中的pid 和当前pid 是否相同 ,如果不同则退出
[ "x$(cat $TMP_LOCK_FILE)" == "x"$$ ] || exit
# 执行任务,这里添加你的脚本逻辑
sleep 60
# 删除锁文件
rm -f $TMP_LOCK_FILE
}
TMP_LOCK_FILE=/tmp/xxxx.lock.file
# 检查锁文件是否存在,如果存在表示系统中有其他实例在运行,则直接退出。
# 需要注意的是,锁文件需要避免重名,可以参照c++ 头文件保护宏的命名方式
if [ -f $TMP_LOCK_FILE ]; then
PROC_PID=`cat $TMP_LOCK_FILE`
if [ `ps aux | grep -v grep | awk -v pid="$PROC_PID" 'BEGIN{res=0}{if($2==pid)res=1}END{printf("%d", res)}' ` -eq 1 ]; then
echo "the proc is running"
exit
else
echo "the proc was killed when last running"
rm -rf $TMP_LOCK_FILE
fi
fi
sleep 2
[ -f $TMP_LOCK_FILE ] && exit
# 开始执行任务前,创建锁文件,并把当前pid 写入锁文件
echo $$ > $TMP_LOCK_FILE
sleep 1
# 判断锁文件中的pid 和当前pid 是否相同 ,如果不同则退出
[ "x$(cat $TMP_LOCK_FILE)" == "x"$$ ] || exit
# 执行任务,这里添加你的脚本逻辑
sleep 60
# 删除锁文件
rm -f $TMP_LOCK_FILE
}