How can I terminate a system command with alarm in Perl?
        Posted  
        
            by rockyurock
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by rockyurock
        
        
        
        Published on 2010-04-01T19:06:54Z
        Indexed on 
            2010/04/01
            19:23 UTC
        
        
        Read the original article
        Hit count: 495
        
I am running the below code snippet on Windows. The server starts listening continuously after reading from client. I want to terminate this command after a time period.
If I use alarm() function call within main.pl, then it terminates the whole Perl program (here main.pl), so I called this system command by placing it in a separate Perl file 
and calling this Perl file (alarm.pl) in the original Perl File using the system command.
But in this way I was unable to take the output of this system() call neither in the original Perl File nor in  called one Perl File.
Could anybody please let me know  the way to terminate a system() call or take the output in that way I used above?
main.pl
my @output = system("alarm.pl");
print"one iperf completed\n";
open FILE, ">display.txt" or die $!; 
print FILE @output_1; 
close FILE;
alarm.pl
alarm 30;
my @output_1 = readpipe("adb shell cd /data/app; ./iperf -u -s -p 5001");
open FILE, ">display.txt" or die $!; 
print FILE @output_1; 
close FILE;
In both ways display.txt is always empty.
© Stack Overflow or respective owner