From: miker Date: Mon, 4 Sep 2006 08:46:50 +0000 (+0000) Subject: adding interlocks to protect against multiple runs -- only protects one machine! X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=d540efbc57f27b3f9fdba1e3393fb72daef9390a;p=Evergreen.git adding interlocks to protect against multiple runs -- only protects one machine! git-svn-id: svn://svn.open-ils.org/ILS/trunk@5916 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/support-scripts/fine_generator.pl b/Open-ILS/src/support-scripts/fine_generator.pl index 58429442c0..a14918708a 100755 --- a/Open-ILS/src/support-scripts/fine_generator.pl +++ b/Open-ILS/src/support-scripts/fine_generator.pl @@ -11,6 +11,26 @@ use JSON; use OpenSRF::System; my $config = shift || die "bootstrap config required\n"; +my $lockfile = shift || "/tmp/generate_fines-LOCK"; + +if (-e $lockfile) { + open(F,$lockfile); + my $pid = ; + close F; + + open(F,'/bin/ps axo pid|'); + while ( my $p = ) { + chomp($p); + if ($p =~ s/\s*(\d+)$/$1/o && $p == $pid) { + die "I seem to be running already at pid $pid. If not, try again\n"; + } + } + close F; +} + +open(F, ">$lockfile"); +print F $$; +close F; OpenSRF::System->bootstrap_client( config_file => $config ); @@ -20,3 +40,4 @@ my $r = OpenSRF::AppSession while (!$r->complete) { $r->recv }; +unlink $lockfile; diff --git a/Open-ILS/src/support-scripts/hold_targeter.pl b/Open-ILS/src/support-scripts/hold_targeter.pl index c828dc950a..406c1be211 100755 --- a/Open-ILS/src/support-scripts/hold_targeter.pl +++ b/Open-ILS/src/support-scripts/hold_targeter.pl @@ -1,8 +1,7 @@ #!/usr/bin/perl # --------------------------------------------------------------------- -# Generic databse object dumper. -# ./object_dumper.pl , , ... -# ./object_dumper.pl /openils/conf/bootstrap.conf permission.grp_tree +# Usage: +# hold_targeter.pl # --------------------------------------------------------------------- use strict; @@ -11,6 +10,26 @@ use JSON; use OpenSRF::System; my $config = shift || die "bootstrap config required\n"; +my $lockfile = shift || "/tmp/hold_targeter-LOCK"; + +if (-e $lockfile) { + open(F,$lockfile); + my $pid = ; + close F; + + open(F,'/bin/ps axo pid|'); + while ( my $p = ) { + chomp($p); + if ($p =~ s/\s*(\d+)$/$1/o && $p == $pid) { + die "I seem to be running already at pid $pid. If not, try again\n"; + } + } + close F; +} + +open(F, ">$lockfile"); +print F $$; +close F; OpenSRF::System->bootstrap_client( config_file => $config ); @@ -20,3 +39,5 @@ my $r = OpenSRF::AppSession while (!$r->complete) { $r->recv }; +unlink $lockfile; +