首页
登录 | 注册

perl flock

#!/usr/local/bin/perl5
use Fcntl qw(:flock);
my $rxdScriptLockFile="/tmp/.lock";
my $rxdScriptLock=1;
my $lockfilestatus;


&setScriptLock();

sub setScriptLock {
  my $t = 0;
  if ( not -e $rxdScriptLockFile ) {
     system ( "touch $rxdScriptLockFile") 
  }else{
      print "using exist lock file\n";
      system "ls -l $rxdScriptLockFile"
  }
  chomp($lockfilestatus = `date;/bin/ls -alF $rxdScriptLockFile 2>&1`);

  if ( open(LOCK, "<$rxdScriptLockFile") ) {
    # should be LOCK_EX | LOCK_NB, but could not find appropriate definition
    $b = flock( LOCK, LOCK_EX|LOCK_NB );
    while ( !$b && $t < 60) {
      print ("INFO", "Waited for $t seconds that script lock gets released...\n");
      sleep(1);
      $t++;
      $b = flock( LOCK,LOCK_EX|LOCK_NB );
    }
    if ( $b ) {
      print ("Script lock is released after wait $t secs") if $t > 0;
      print "Got Lock, now sleep 10s\n";
      sleep 10;
    } else {
      print ("Unable to get script lock (flock error code:$b) after $t seconds:  $lockfilestatus \n");
    }
  } else {
    print ( "Unable to create lock file $rxdScriptLockFile: $lockfilestatus\n");
  }


}


相关文章

  • 笔记之一       Ruby之所以设计模块的概念,在于弥补传统的C之类语言的模块概念的缺失.在软件设计中,模块化体现很多很有用,它直接关系到软件设计的效率和灵活性.C中没有明显的模块的概念,就要由程序员自己通过软件的手段来强化模块概念,通 ...
  • 作为网络工程师,日常工作大多数时间都是在用telnet同交换机.路由器等网络设备打交道.如果说perl中有什么好用的模块,当然得提Net::Telnet.Net::Telnet功能全面,对于日常管理写个针对几台.几十台交换机的小程序还是不错 ...
  • Perl的优势之一是其有庞大的CPAN库,安装这些库有很多方法. 一.通过专用的模块安装模块来安装模块 优点是可以解决依赖问题, 有三个模块,分别是cpan,cpanp,cpanm. 1. CPAN模块. cpan是一个重量级选手. Red ...
  • perl登录各种网站的原理与实现
    内容出自:http://my.oschina.net/tkorays/blog/305257 perl登录各种网站的原理与实现 tkorays(tkorays@hotmail.com) 小孩子才践行大道理,大人只会讲.         写脚 ...
  • 安装perl模块 对于新手来说是一个比较麻烦的事情,现在有一个比较好的工具可以解决这个问题,正题如下: wget  http://xrl.us/cpanm  --no-check-certificate -O cpanm chmod u+x ...
  • 1.首先要有个c编译器,推荐dev-cpp(开源免费的,网上自己搜索),记得要下含有mingw的就是了(不懂c,下载含有mingw的因为这个版本的bin目录里有gcc.exe等工具). 1.1安装好了编译器之后,要能在cmd中以命令方式运行 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.011 s.
京ICP备10005923号