#!/usr/bin/perl use strict; use warnings; $|=1; use Sys::RunAlone; print "Script $0 is running now.\n"; die "Another $0 is already running.\n" unless open my $self, '<', $0; CheckRaceCondition(); sleep(5); print "End.\n"; sub CheckRaceCondition { die "Another $0 is already running.\n" unless open $self, '<', $0; } __END__