#!/usr/bin/perl package MyServer; use Net::Server::Fork; use Fcntl qw(LOCK_EX); @ISA = qw(Net::Server::Fork); MyServer->run(port => 20203); exit; sub process_request { my $self = shift; print STDOUT "Welcome to my server\r\n"; # while (){ # print "You said: $_"; # last if /quit/; # } print "Waiting to get lock on file\r\n"; my $lockfile = '/tmp/foo'; open(LOCK, $lockfile) || die "Couldn't open [$!]"; flock(LOCK,LOCK_EX) || die "Couldn't get lock [$!]"; print "Got lock, proceeding\r\n"; system('sleep.pl'); close(LOCK); print "All done, goodbye\r\n"; }