Tom*_*ner 24 perl process mutual-exclusion
有几种方法可以做到这一点,但我不确定哪一种是最好的.
这是我能想到的:
可能有更多方法可以做到这一点.您认为最好的方法是什么?
Leo*_*ans 39
有很多方法可以做到这一点.PID文件是传统的方法.您也可以对文件进行锁定,例如程序本身.这段小代码可以解决这个问题:
use Fcntl ':flock';
open my $self, '<', $0 or die "Couldn't open self: $!";
flock $self, LOCK_EX | LOCK_NB or die "This script is already running";
Run Code Online (Sandbox Code Playgroud)
与PID文件相比的一个优点是文件在程序退出时自动解锁.以可靠的方式实施起来要容易得多.
Rob*_*lls 10
做旧的PID文件技巧.
HTH
干杯,
抢