open(SEM, ">$semaphore_file") || die "Cannot create semaphore $semaphore_file: $!"; flock(SEM, LOCK_EX) || die "Lock failed: $!";