Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7985
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-15 14:12
文章分类

全部博文(18)

文章存档

2016年(18)

我的朋友

分类: PERL

2016-04-22 17:11:08

#!/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");
  }


}

阅读(543) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:JS 日期处理

给主人留下些什么吧!~~