Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Terminate process tree in windows

by sjwnih111 (Novice)
on Oct 30, 2013 at 18:36 UTC ( #1060411=perlquestion: print w/replies, xml ) Need Help??

sjwnih111 has asked for the wisdom of the Perl Monks concerning the following question:

Hello everyone, I'm using the following to call a child process from my script and then time it out:
my $pid = fork(); if (!$pid) { system($command); } else { sleep $max_time; print "Since $max_time minutes have elapsed, w +ill kill process with PID $$ "; system("TASKKILL /F /T /PID $$"); }
Two problems, and I'm not sure what they're from. (1) After completing the child process on time, I get a popup from windows that says "perl.exe has stopped working..." (2) When I look in task manager, there are a bunch of Taskill.exe that seem to be left over even after I have closed the processes they were trying to kill... If anyone has any idea what's going on it would be very helpful.

Replies are listed 'Best First'.
Re: Terminate process tree in windows
by Corion (Pope) on Oct 30, 2013 at 19:24 UTC

    While fork() does kinda work on Perl on Windows, it is only emulated by Perl. Windows only ever sees one Perl process, no matter how much you fork() from it. When you use taskkill, you kill off the one Perl process.

    In my experience, it's best not to use fork() on Windows and use threads or plain subprocesses instead. This usually requires a different approach in the program though.

Re: Terminate process tree in windows
by bojinlund (Prior) on Oct 31, 2013 at 06:19 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1060411]
Approved by Old_Gray_Bear
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (3)
As of 2020-10-31 23:26 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (291 votes). Check out past polls.