Chinaunix首页 | 论坛 | 博客
  • 博客访问: 538916
  • 博文数量: 102
  • 博客积分: 950
  • 博客等级: 准尉
  • 技术积分: 1094
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-28 16:07
文章分类

全部博文(102)

文章存档

2020年(2)

2016年(5)

2015年(15)

2014年(25)

2013年(18)

2012年(19)

2011年(18)

我的朋友

分类: LINUX

2013-05-24 17:29:58

#### create myself pid file
my $pid = $$;
my $myname=$0;
print "myname: $myname\n";
my $pidFile = "/export/web/tmp/handle_report.pid";

#### check other myself,if exists then exit else write myself pid to pidfile
if ( -s "$pidFile") {
    open PIDF, $pidFile || die "Can't open file $pidFile $!\n";
    my $oldPid;
    while () {
        $oldPid=$1 if ($_ =~ /^(\d+)/);
    }
    close(PIDF);
    if($oldPid) {
        #my $is_exist = qx/ps x -o 'pid' |grep -w "$oldPid"/;
        #if($is_exist)
        if(-d /proc/$oldPid )
        {
        print "Warn: already exist other myself pid=$oldPid,exit or kill $oldPid,check pidfile $pidFile\n";
        exit;
        }
    }
}
#### other check method
my @psname = qx#ps x -o 'pid,cmd' | grep -w "$myname" | grep -Ev 'grep|/bin/sh'#;
if(@psname >1) {
    print "Warn: ps name $myname already exist other myself exit\n";
    exit;
}

my $insertPID=qx/echo $pid >$pidFile/;

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

上一篇:perl时间处理

下一篇:RabbitMQ 配置开发

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