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