以下のコードを使用して、replace.exe の単一インスタンスが実行されていることを確認しました。replace.exe を作成して Windows で実行すると、サイズが 0 kb の replace (拡張子なし) という名前のファイルがもう 1 つ作成されます。
そのファイルを作成したくありません。それ以外の場合は、replace.exe の実行が終了した後にファイルを自動的に削除します。
助けてください。ありがとう
use Fcntl qw(:flock);
# Check if any instance of this script is already running
my $lock = "replace";
sub LockOut ( ) {
&print_log ("A instance of this script is running. Therefore exiting. Please try after some time.");
print "A instance of this script is running. Therefore exiting. Please try after some time.";
exit 1;
}
open ( my $pid, '>', $lock );
flock ( $pid, LOCK_EX | LOCK_NB ) or LockOut( );