To:                     beginners@perl.org
From:                   onlineviewer <[EMAIL PROTECTED]>
Subject:                kill process when file number reached...
Date sent:              Tue, 1 Jul 2008 11:26:42 -0700 (PDT)
Organization:           http://groups.google.com

> Hello All,
> 
> I am trying to run a tcpdump and have perl kill the tcpdump once 10
> files have been created by the tcpdump. Here is my code, not sure...if
> my logic is screwy
> Thanks,
> 
> system "tcpdump -i bge1 -s0 -w /tmp/file.out -C 1";
> sleep 2;

The system() doesn't return until the tcpdump exits.

You probably want to fork() and exec() instead. Or use 

 system 1, "tcpdump -i bge1 -s0 -w /tmp/file.out -C 1";

"system(1, @args) spawns an external process and immediately returns 
its process designator, without waiting for it to terminate. Return 
value may be used subsequently in wait or waitpid. Failure to spawn() 
a subprocess is indicated by setting $? to "255 << 8". $? is set in a 
way compatible with Unix (i.e. the exitstatus of the subprocess is 
obtained by "$? >> 8", as described in the documentation). "

HTH, Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


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


Reply via email to