On Mon, Apr 14, 2008 at 9:45 AM, anthony brooke <[EMAIL PROTECTED]> wrote:
>
> Thanks for the reply, but sometimes I don't know where is the code that cause 
> the infinite loop.
> Is there such as thing as perl configuration file, to set the execution time 
> for any code, any where
> in the program just like php.ini file. Thanks.

No, but you could just create a script like

#!/usr/bin/perl

use strict;
use warnings;

my $timeout = shift;
my $rc;
my $pid = fork;
eval {
        $SIG{ALRM} = sub { die "timeout\n" };
        die "could not fork" unless defined $pid;
        if ($pid) {
                alarm $timeout;
                waitpid $pid, 0;
                $rc = $? >> 8;
        } else {
                exec "/usr/bin/perl", @ARGV;
        }
};
if ($@) {
        kill "SIGTERM", $pid;
        print "died with: [EMAIL PROTECTED]";
} else {
        print "exit code was: $rc\n";
}

and then run it like this:

timout.pl 60 script_that_should_die_in_60_seconds.pl

-- 
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to