iEntry 10th Anniversary RSS Newsletter Advertising
Visit Twellow.com

Controlling Concurrent Runs with Perl

Post to Twitter Post to Facebook

Sometimes you have a program that can't be run by more than one person, or one that must run frequently but you don't know for sure how long an instance of it will take.

One way to accomplish that is to use a lock file.

#!/usr/bin/perl5
open(CNT, "/tmp/mylockfile");
flock CNT,2;
# program hangs here until other instance is done
# .. other processing when it is free
# release the lock
flock CNT,8;
close CNT;

If an instance is running, another instance will be stopped at the "flock CNT,2;" line and won't continue until the first program executes "flock CNT,8;".

But what if you don't want to just hang? An easy way to do that is to write your PID to a file:

#!/usr/bin/perl
open (L, "/tmp/mypid.lock");
$pid=;
close L;
$stat=kill 0, $pid ;
chomp $stat;
chomp $pid;
if ($stat and $pid) {
print "\nExiting because $pid exists\n";
exit 1;
}
open (L, ">/tmp/mypid.lock");
print L "$$\n";
close L;
.. other code

The "kill 0" actually doesn't even send a signal; it just checks to see if the process exists. If it does, we print a message and exit; otherwise the code continues.

These are two simple ways to control program execution with Perl.

*Originally published at APLawrence.com

A.P. Lawrence provides SCO Unix and Linux consulting services http://www.pcunix.com

News Tags: perl
About the author:
A.P. Lawrence provides SCO Unix and Linux consulting services http://www.pcunix.com

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
19 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.
WebProNews on Facebook
Featured Headline
Search Bing From Hotmail Inbox to Insert Content
Bing Added to Quick Add Feature
1 comment | Thursday, July 9th
 
Subscribe to WebProNews


Send me relevant info