procmail
[Top] [All Lists]

Re: locking a script

2000-12-23 03:36:08
According to Andrew Edelstein on Thu, Dec 21, 2000 at 11:30:05AM -0800:
| On Thu, Dec 21, 2000 at 03:51:48PM +0200, Eric Smith wrote:
| > How do I lock a script so that procmail will only call that script
| > once (and will wait until that invocation is finished until it involves
| > a subsequent message)?
| 
| Unless you're doing a non-delivering filter and you have another recipe
| further down that calls the script again, it will only invoke it the one time
| anyway. As for waiting utnil it finishes before proceeding, that's what w is
| for:
| 
| >           :0          # this is where I want the lock
| >           |cd /home/httpd/turn;su -c ./mail2sms.pl nobody
| 
|       :0w
|       |cd /home/httpd/turn; su -c ./mail2sms.pl nobody
| 
| Though I'd probably make that pipe:
| 
|       | (cd /home/httpd/turn; su -c ./mail2sms.pl nobody)

This did not work in production so I just prototyped a simple case
like this:

.procmailrc
=========
:0w
*^Subject:.*wait
| perl /home/eric/bin/wait.pl

wait.pl
==============
#!/usr/bin/perl -w
open FILE, ">>/t/wait.$$" or die "Nope $!";
$i=1;
print FILE "$i\n";
print FILE scalar (localtime);
while ($i < 10 )
   {
      print FILE $i++
   }
sleep 30;
print FILE "\n 30 sec sleep, now I'm off\n";
close FILE;


All the files had the same mod time from 10 executions truggered by 10
concurrent emails.

Why is the 'w' doing nothing?

Here is the procmail loig.

procmail log
=================

<snip>
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:19:44 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32417] Sat Dec 23 10:25:30 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32421] Sat Dec 23 10:25:35 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32428] Sat Dec 23 10:25:36 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32440] Sat Dec 23 10:25:45 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32448] Sat Dec 23 10:25:55 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32417] Sat Dec 23 10:26:03 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:25:29 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: [32417] Sat Dec 23 10:26:04 2000
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32421] Sat Dec 23 10:26:05 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:25:35 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32465] Sat Dec 23 10:26:07 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32428] Sat Dec 23 10:26:08 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:25:36 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32476] Sat Dec 23 10:26:09 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32483] Sat Dec 23 10:26:09 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32490] Sat Dec 23 10:26:10 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
procmail: [32494] Sat Dec 23 10:26:11 2000
procmail: Assigning "SENDMAIL=/usr/sbin/sendmail"
procmail: No match on "^Subject:.*grabit"
procmail: Match on "^Subject:.*wait"
procmail: Executing "perl,/home/eric/bin/wait.pl"
perl: error in loading shared libraries
libcrypt.so.1: failed to map segment from shared object: Cannot allocate memory
procmail: [32494] Sat Dec 23 10:26:12 2000
procmail: Program failure (127) of "perl"
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
procmail: Locking "/var/spool/mail/eric.lock"
procmail: Assigning "LASTFOLDER=/var/spool/mail/eric"
procmail: Opening "/var/spool/mail/eric"
procmail: Acquiring kernel-lock
procmail: Unlocking "/var/spool/mail/eric.lock"
From down  Sat Dec 23 10:26:11 2000
 Subject: wait
  Folder: /var/spool/mail/eric                                              489
procmail: Notified comsat: "eric(_at_)412749:/var/spool/mail/eric"
procmail: [32440] Sat Dec 23 10:26:17 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:25:45 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32448] Sat Dec 23 10:26:26 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:25:55 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32465] Sat Dec 23 10:26:38 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:26:07 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32476] Sat Dec 23 10:26:39 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:26:09 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32483] Sat Dec 23 10:26:39 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:26:09 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"
procmail: [32490] Sat Dec 23 10:26:40 2000
procmail: Assigning "LASTFOLDER=perl /home/eric/bin/wait.pl"
From down  Sat Dec 23 10:26:10 2000
 Subject: wait
  Folder: perl /home/eric/bin/wait.pl                                       489
procmail: Notified comsat: "eric@:perl /home/eric/bin/wait.pl"



-- 
Eric Smith
Fruitcom.com Amsterdam
Wire phone : +31 20 528 7340
Mobile: +31 617 232 304
www.fruitcom.com
_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

<Prev in Thread] Current Thread [Next in Thread>