Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: reliable lockfiles?

by atcroft (Monsignor)
on Jun 20, 2012 at 15:47 UTC ( #977387=note: print w/replies, xml ) Need Help??


in reply to reliable lockfiles?

Regarding the part of your comment regarding PIDs, I believe you can kill 0, $pid to determine if a signal can be sent to that PID. If so, then verify that the PID is for a process executing the same script/program (by parsing the result of a 'ps' command, or using a module such as Proc::ProcessTable).

# Untested use Proc::ProcessTable; my $tobj = new Proc::ProcessTable; my $proctable = $tobj->table(); my $pid = 0; for ( @$proctable ) { if ( $_->cmndline =~ m/$script_name/ ) { $pid = $_->pid; last; } } print $script_name, ( kill 0, $pid ? q{appears} : q{does not appear} ), q{ to be running}, qq{\n};

Hope that helps.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://977387]
help
Chatterbox?
shmem serves tea along with the cookies. (☕) x @CBMonks
[shmem]: hmm.. which makes emerge the question: is there a way to attach a subroutine to a variable, which is run as soon as that variable changes?
[moritz]: through a tie?
[shmem]: moritz: of course!
shmem slaps forehead m(
[shmem]: consider, then, @CBMonks as a tied variable which triggers withdrawing empty cups and serving new ones

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (10)
As of 2017-04-24 12:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I'm a fool:











    Results (439 votes). Check out past polls.