Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Timing out shell commands (paranoia)

by Dominus (Parson)
on May 02, 2001 at 18:31 UTC ( #77333=note: print w/ replies, xml ) Need Help??


in reply to Timing out shell commands (paranoia)

Says bluto:

I'm trying to figure out an effective way of timing out shell commands in Perl.
The technique I usually use for this is to make a very small tool called stopafter:
#!/usr/bin/perl # stopafter - run a command with a timeout my $time = shift; alarm($time); exec @ARGV; die "Couldn't exec @ARGV: $!; aborting";
To use stopafter, you say something like this:
stopafter 300 command arg arg...
The command runs, but it dies automatically after 300 seconds.

Now in your Perl program, use:

open FH, "stopafter 10 command |" or die ...;
Now read from the pipe as usual. After 10 seconds, the timer expires and you get an end-of-file condition on the pipe.

Hope this helps.

--
Mark Dominus
Perl Paraphernalia


Comment on Re: Timing out shell commands (paranoia)
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://77333]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2015-08-01 03:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (285 votes), past polls