知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

一个实现linux shell文件锁的例子

发布时间:2014-09-05 14:37:27作者:知识屋

一个实现linux shell文件锁的例子
 
最近看到很多讨论如何能不让脚本重复执行的问题,实际就是文件锁的概念,写了一个小例子:
把这个作为文件开头不会产生重复执行的情况。(我想两个执行脚本的文件名一模一样应该不会经常出现吧)
 
#!/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 
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜