> -----Original Message----- > From: Jim Gibson [mailto:jimsgib...@gmail.com] > Sent: Wednesday, June 22, 2011 5:35 PM > To: beginners@perl.org > Subject: Re: Lock file question > > On 6/22/11 Wed Jun 22, 2011 3:02 PM, "Steven Buehler" > <st...@ibushost.com> > scribbled: > > > I am trying to use a lockfile so that the script can't be run again if > > it is already running. The below code works fine. The problem is > > that if my script runs with an argument for a config file with one > > person trying to run it as "script.pl first.cfg" and the second person > > trys to run it as "script.pl second.cfg" the second person can't run > > it. How do I do a lock in this case so that as long as the config > > files are different, it will still run? The below code is great since > > if the script is terminated, the lock goes away. If I actually create > > a file and put a lock on it and terminate the script before deleting > > the lock file, I have to delete the lock file manually, correct? > > > > > > > > use Fcntl ':flock'; #import LOCK_* constants > > > > INIT{ > > > > open *{0} or die "What!? $0;$!"; > > > > flock *{0}, LOCK_EX|LOCK_NB or die "$0 is already running > > somewhere!n"; > > > > } > > I think you want to lock the config file ($ARGV[0]), not the program file ($0). >
Thank You, but...... if I replace *{0} with any of the following, it goes to the "What" error or a general error for a misconfiguration. Yes, I double checked and made sure the config file was there and it did read it if I took out the lock stuff. $ARGV[0] ($ARGV[0]) *{$ARGV[0]} -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/