锁定竞争条件perl的文件

时间:2013-09-04 17:58:02

标签: perl race-condition filelock multiple-processes

我正在编写一个脚本,没有任何理由在运行时产生两个额外的进程。为了解决这个问题,我写了一个文件锁例程。但是因为这些额外的进程同时运行,所以这似乎根本不起作用。我在这里失踪了什么。

my $lockfile = '/tmp/lockfile';
my $fhpid;
sub BailOut {
    print "$0 is already running. Exiting.\n";
    print "(File '$lockfile' is locked).\n";
    exit(1);
}
open($fhpid, '>', $lockfile) or die "error: open '$lockfile': $!";
flock($fhpid, LOCK_EX|LOCK_NB) or BailOut();

0 个答案:

没有答案