if (-e "/tmp/.updLock") { open(FILE, "/tmp/.updLock"); my $line = ; close(FILE); chomp $line; warn "PROCESS $line already running \n\n"; my @ps = `ps -p $line`; my $count = @ps; if ($count == 1) { # IT's FAKING IT!! warn "PROCESS $line not actually running. Lockfile deleted. \n\n"; unlink("/tmp/.updLock"); } # we're still updating from last time die "$0 still running\n\n" if $count > 1; } else { open(FILE, "> /tmp/.upLock"); print FILE $$; close(FILE); }