Chinaunix首页 | 论坛 | 博客
  • 博客访问: 247131
  • 博文数量: 41
  • 博客积分: 1523
  • 博客等级: 上尉
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-05 21:23
文章分类

全部博文(41)

文章存档

2014年(1)

2013年(2)

2012年(1)

2011年(2)

2010年(3)

2009年(1)

2008年(20)

2007年(11)

分类: LINUX

2013-05-20 17:52:13

最近看到很多讨论如何能不让脚本重复执行的问题,实际就是文件锁的概念,写了一个小例子:
把这个作为文件开头不会产生重复执行的情况。(我想两个执行脚本的文件名一模一样应该不会经常出现吧)

#!/bin/bash
LockFile()
{
  find /dev/shm/* -maxdepth 0 -type l -follow -exec unlink {} \;
  [ -f /dev/shm/${0##*/
} ] && exit
  ln -s /proc/$$ /dev/shm/${0##*/}
  trap "Exit" 0 1 2 3 15 22 24
}
Exit()
{
  unlink /dev/shm/${0##*/};
  exit 0;
}
LockFile
# main program
# program ... ...
# Exit


set -C
if ($(: >/tmp/lockfile)) 2<&-;then
  # run cmd
  rm -f /tmp/lockfile
fi
set +o noclobber

阅读(4386) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~